Function at 0x4d69e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x50]
xor cl, cl
push ebp
mov byte [esp + 7], cl
mov ebp, dword [eax + 0x10]
xor eax, eax
cmp dword [ebp], eax
cmove ebp, eax
mov dword [esp + 0x1c], ebp
test ebp, ebp
je 0x4d83a7
mov edx, dword [ebp]
push ebx
push esi
push edi
cmp dword [edx], eax
cmove edx, eax
mov dword [esp + 0x20], edx
cmp dword [ebp + 0xc], 3
jne 0x4d8374
mov edi, dword [esp + 0x68]
mov esi, 1
mov ecx, dword [ebp + 0x18]
shl esi, cl
push ebp
and esi, dword [edi]
mov dword [esp + 0x38], esi
mov dword [esp + 0x20], 0
call fcn.0040a6c0
add esp, 4
test al, al
je 0x4d6a7a
mov ecx, dword [ebp + 0x5c]
mov edx, 1
mov eax, dword [edi + 0x54]
shl edx, cl
mov ecx, dword [edi + 0x58]
and ecx, edx
neg ecx
sbb ecx, ecx
and ecx, 4
mov ebx, ecx
or ebx, 2
and eax, edx
cmove ebx, ecx
mov dword [esp + 0x1c], ebx
test dword [edi + 0x50], edx
je 0x4d6a7a
or ebx, 1
mov dword [esp + 0x1c], ebx
cmp byte [edi + 0x17e], 0
mov ebx, dword [esp + 0x64]
je 0x4d6c06
xor al, al
mov dword [ebx], 2
mov dword [ebx + 4], ebp
cmp dword [ebp + 0x3c], 0
mov byte [esp + 0x60], al
jbe 0x4d6bfd
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edi, ecx
nop dword [eax]
mov edx, dword [ebp + 0x38]
mov eax, dword [ecx + edx + 0x10]
sub eax, 0xd
je 0x4d6aca
sub eax, 1
jne 0x4d6be0
lea eax, [ebp + 0x5c]
jmp 0x4d6acd
lea eax, [ebp + 0x58]
mov esi, dword [eax]
mov dword [esp + 0x24], eax
test esi, esi
je 0x4d6be0
mov eax, dword [ecx + edx + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], 0
mov al, byte [eax + 0x11]
cmp al, 0x40
jne 0x4d6b02
or ecx, 0xffffffff
mov dword [esp + 0x60], 0x40
or edx, 0xffffffff
jmp 0x4d6b27
xor ecx, ecx
movzx eax, al
xor edx, edx
mov dword [esp + 0x60], eax
and eax, 0x3f
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
and esi, ecx
mov ecx, dword [esp + 0x2c]
and ecx, edx
mov eax, esi
or eax, ecx
je 0x4d6b92
push dword [esp + 0x60]
push ecx
push esi
call fcn.0040f5b0
push dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x48], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x4d6b7a
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x30]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
mov eax, dword [esp + 0x18]
push esi
push eax
push 0x10a
push ebx
call fcn.0041cdb0
add esp, 0x10
mov dword [esp + 0x18], eax
mov edx, dword [ebp + 0x38]
add edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
lea esi, [edx + 4]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
lea ecx, [eax + 4]
mov dword [edx + 0xc], eax
mov dword [esi], 0
mov dword [esi + 4], ecx
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x24]
mov dword [ecx], esi
mov ecx, dword [esp + 0x14]
mov dword [eax], 0
mov al, 1
mov byte [esp + 0x60], al
jmp 0x4d6be4
mov al, byte [esp + 0x60]
inc edi
add ecx, 0x14
mov dword [esp + 0x14], ecx
cmp edi, dword [ebp + 0x3c]
jb 0x4d6ab0
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
or al, byte [esp + 0x13]
setne byte [esp + 0x13]
test esi, esi
jne 0x4d6c1c
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4d6c1c
cmp byte [edi + 4], al
je 0x4d6c33
cmp byte [ebp + 0x44], al
je 0x4d6c33
push ebp
push ebx
call fcn.004d86a0
add esp, 8
or al, byte [esp + 0x13]
mov eax, dword [esp + 0x1c]
setne byte [esp + 0x13]
cmp dword [ebp + 0x20], 4
jne 0x4d6c3f
cmp byte [edi + 5], 0
jne 0x4d6c88
test eax, eax
je 0x4d6c65
mov edx, dword [ebp + 0x3c]
xor ecx, ecx
test edx, edx
je 0x4d6c65
mov eax, dword [ebp + 0x38]
add eax, 0x10
cmp dword [eax], 0
je 0x4d6c61
inc ecx
add eax, 0x14
cmp ecx, edx
jb 0x4d6c52
jmp 0x4d6c65
test ecx, ecx
jns 0x4d6c88
cmp dword [ebp + 0x18], 4
jne 0x4d6c71
cmp byte [edi + 6], 0
jne 0x4d6c88
mov eax, dword [edi + 8]
test eax, eax
je 0x4d6ca5
push dword [edi + 0x180]
push ebp
call eax
add esp, 8
test al, al
je 0x4d6ca5
push ebp
push ebx
call fcn.004d5410
add esp, 8
test al, al
jne 0x4d6ca0
cmp byte [esp + 0x13], al
mov byte [esp + 0x13], al
je 0x4d6ca5
mov byte [esp + 0x13], 1
cmp dword [ebp + 0x18], 4
jne 0x4d6e70
cmp byte [edi + 0xc], 0
je 0x4d6e70
cmp dword [ebp + 0x20], 4
je 0x4d6e70
push ebp
call fcn.0040a680
add esp, 4
test al, al
je 0x4d6cdc
mov dword [ebp + 0x18], 1
jmp 0x4d6e6b
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x6c], 0
je 0x4d6dc1
mov dword [ebx], 2
mov dword [ebx + 4], ebp
mov eax, dword [ebp + 0x58]
cdq
push 0x20
push edx
push eax
call fcn.0040f5b0
push 0x20
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x78], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d6d23
mov dword [esp + 0x60], eax
jmp 0x4d6d42
mov eax, dword [esp + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x60], eax
push 0x1ca
push dword [ebx + 0xc]
call fcn.00409600
mov esi, eax
push 0x20
push 2
lea eax, [esi + 0x1c]
push eax
push esi
mov dword [esp + 0x4c], eax
call fcn.00407af0
mov eax, dword [esp + 0x78]
xorps xmm0, xmm0
movups xmmword [esp + 0x64], xmm0
mov dword [esp + 0x70], eax
movups xmm0, xmmword [esp + 0x64]
push esi
push ebx
movups xmmword [esi + 0x54], xmm0
call fcn.0041d130
mov edx, dword [ebp + 0x3c]
add esp, 0x20
xor ecx, ecx
test edx, edx
je 0x4d6e6b
mov eax, dword [ebp + 0x38]
add eax, 0x10
nop dword [eax]
cmp dword [eax], 0
je 0x4d6db2
inc ecx
add eax, 0x14
cmp ecx, edx
jb 0x4d6da0
jmp 0x4d6e6b
cmp ecx, 0xffffffff
je 0x4d6e6b
push dword [esp + 0x34]
jmp 0x4d6e18
push ebp
push ebx
mov dword [ebp + 0x18], 1
call fcn.004e5170
push eax
push 0xfe
push ebx
call fcn.0041cd60
push eax
push 0xea
push ebx
call fcn.0041cd60
mov edx, dword [ebp + 0x3c]
add esp, 0x20
xor ecx, ecx
mov dword [esp + 0x60], eax
test edx, edx
je 0x4d6e6b
mov eax, dword [ebp + 0x38]
add eax, 0x10
nop dword [eax]
cmp dword [eax], 0
je 0x4d6e0f
inc ecx
add eax, 0x14
cmp ecx, edx
jb 0x4d6e00
jmp 0x4d6e6b
cmp ecx, 0xffffffff
je 0x4d6e6b
push dword [esp + 0x60]
mov eax, dword [ebp + 0x38]
lea esi, [ecx + ecx*4]
shl esi, 2
push dword [eax + esi + 0xc]
push 0xe1
push ebx
call fcn.0041cdb0
mov edx, dword [ebp + 0x38]
add esp, 0x10
add edx, esi
mov edi, eax
mov ecx, dword [edx + 4]
lea esi, [edx + 4]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx], eax
lea ecx, [edi + 4]
mov dword [esi], 0
mov dword [edx + 0xc], edi
mov edi, dword [esp + 0x68]
mov dword [esi + 4], ecx
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx]
mov dword [eax + 4], esi
mov dword [ecx], esi
mov byte [esp + 0x13], 1
cmp dword [ebp + 0x18], 0
jne 0x4d6e97
cmp byte [edi + 0xd], 0
jne 0x4d6e88
cmp byte [ebp + 0x45], 0
je 0x4d6e97
cmp byte [edi + 0xe], 0
je 0x4d6e97
push ebp
push ebx
call fcn.004d4b60
add esp, 8
mov byte [esp + 0x13], 1
mov ecx, dword [ebp + 0x58]
mov edx, 1
mov esi, dword [ebp + 0x3c]
xor eax, eax
shl edx, cl
mov dword [esp + 0x60], ecx
mov dword [esp + 0x14], edx
test esi, esi
je 0x4d6f58
mov ecx, dword [ebp + 0x38]
add ecx, 0x10
nop dword [eax]
cmp dword [ecx], 0xb
je 0x4d6ed2
inc eax
add ecx, 0x14
cmp eax, esi
jb 0x4d6ec0
jmp 0x4d6f58
test eax, eax
js 0x4d6f58
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x38]
movups xmm0, xmmword [eax + ecx*4]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmove ecx, eax
cmp dword [ecx + 0x18], 0
je 0x4d6f2e
nop
mov eax, dword [ecx + 0x18]
cmp eax, 5
je 0x4d6f4a
test eax, eax
jne 0x4d6f10
xor ecx, ecx
jmp 0x4d6f28
movups xmm0, xmmword [ecx + 0x24]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmove ecx, eax
cmp dword [ecx + 0x18], 0
jne 0x4d6f00
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x4d6f4a
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x60], ecx
cmp ecx, 0x20
jae 0x4d6f52
mov edx, 1
shl edx, cl
jmp 0x4d6f54
mov dword [esp + 0x60], 0
xor edx, edx
mov dword [esp + 0x14], edx
test dword [edi + 0x10], edx
je 0x4d7054
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x4c], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d6fc3
mov dword [esp + 0x18], eax
jmp 0x4d6fe2
mov eax, dword [esp + 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x30]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 1
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x44], 0
push 1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x34], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x20]
push esi
push eax
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x48]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
lea esi, [ebx + 0xc]
test dword [edi + 0x14], edx
je 0x4d7152
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x4c], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d70c1
mov dword [esp + 0x18], eax
jmp 0x4d70e0
mov eax, dword [esp + 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x30]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x44], 1
push 1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x34], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x20]
push esi
push eax
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x48]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
test dword [edi + 0x18], edx
je 0x4d725c
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x58], eax
call fcn.004d8970
push edi
push 2
push ebp
push ebx
mov dword [esp + 0x48], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x30
mov dword [esp + 0x2c], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d71cb
mov dword [esp + 0x24], eax
jmp 0x4d71ea
mov eax, dword [esp + 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x30]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x24], eax
push 1
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
push dword [esp + 0x34]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x44], 0
push 1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x30]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x34], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x2c]
push esi
push eax
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x54]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
lea esi, [ebx + 0xc]
test dword [edi + 0x1c], edx
je 0x4d735a
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x50], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d72c9
mov dword [esp + 0x18], eax
jmp 0x4d72e8
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 3
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 1
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x20]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x4c]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
test dword [edi + 0x20], edx
je 0x4d7456
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x50], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d73c5
mov dword [esp + 0x18], eax
jmp 0x4d73e4
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 1
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 3
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x20]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x4c]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
lea esi, [ebx + 0xc]
mov dword [esp + 0x18], esi
test dword [edi + 0x24], edx
je 0x4d7562
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x50], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d74c7
mov dword [esp + 0x18], eax
jmp 0x4d74e6
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 2
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 0
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 1
push dword [esp + 0x60]
push edi
push dword [esp + 0x20]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x4c]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
lea eax, [ebx + 0xc]
add esp, 0x20
mov byte [esp + 0x13], 1
mov dword [esp + 0x18], eax
lea esi, [ebx + 0xc]
test dword [edi + 0x28], edx
je 0x4d765d
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
push edi
push 1
push ebp
push ebx
mov dword [esp + 0x50], eax
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x20
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d75cc
mov dword [esp + 0x2c], eax
jmp 0x4d75eb
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 2
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 1
push dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x4c]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
test dword [edi + 0x2c], edx
je 0x4d771d
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
mov esi, dword [esp + 0x74]
mov ebx, eax
push 1
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 3
push eax
push ebx
push esi
call fcn.004119a0
mov edi, eax
mov dword [esp + 0x58], 0
push 1
lea eax, [esp + 0x5c]
push eax
push ebx
push esi
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x68], 1
push 1
lea eax, [esp + 0x6c]
push eax
push ebx
push dword [esp + 0xa0]
call fcn.004119a0
add esp, 0x40
mov dword [esp + 0x38], 2
push dword [esp + 0x60]
push dword [esp + 0x6c]
push edi
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push ebx
mov ebx, dword [esp + 0x84]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edi, dword [esp + 0x88]
lea esi, [ebx + 0xc]
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
mov dword [esp + 0x18], esi
jmp 0x4d7721
mov esi, dword [esp + 0x18]
test dword [edi + 0x30], edx
je 0x4d780e
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x10
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d777d
mov dword [esp + 0x2c], eax
jmp 0x4d779c
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 1
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 2
push dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x40]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edx, dword [esp + 0x34]
add esp, 0x20
mov byte [esp + 0x13], 1
test dword [edi + 0x34], edx
je 0x4d7904
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x10
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
push 0x20
push 1
mov dword [esp + 0x48], edx
push dword [eax]
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d786e
mov dword [esp + 0x2c], eax
jmp 0x4d788d
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 2
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 1
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 0
push dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x40]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
lea esi, [ebx + 0xc]
mov byte [esp + 0x33], 1
add esp, 0x20
mov dword [esp + 0x18], esi
jmp 0x4d7908
mov esi, dword [esp + 0x18]
mov ecx, dword [ebp + 0x58]
mov eax, 1
shl eax, cl
test dword [edi + 0x38], eax
je 0x4d79fb
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x10
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push 0x20
push 1
push dword [esi]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d796e
mov dword [esp + 0x2c], eax
jmp 0x4d798d
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 2
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 1
push dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x40]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
add esp, 0x20
mov byte [esp + 0x13], 1
mov ecx, dword [ebp + 0x58]
mov eax, 1
shl eax, cl
test dword [edi + 0x3c], eax
je 0x4d7af2
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
movsd xmm0, qword [0x509e80]
add esp, 0x10
mov dword [esp + 0x24], eax
push 0x20
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
push 0x20
push 1
mov dword [esp + 0x48], edx
push dword [eax]
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x4d7a65
mov dword [esp + 0x2c], eax
jmp 0x4d7a84
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push dword [esp + 0x2c]
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x48], 1
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
call fcn.004119a0
add esp, 0x20
mov dword [esp + 0x38], 2
push dword [esp + 0x60]
push edi
push dword [esp + 0x34]
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x40]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
add esp, 0x20
mov byte [esp + 0x13], 1
mov ecx, dword [ebp + 0x58]
mov eax, 1
shl eax, cl
test dword [edi + 0x40], eax
je 0x4d7baf
push edi
push 0
push ebp
push ebx
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.004d8970
mov esi, dword [esp + 0x74]
mov ebx, eax
push 1
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 3
push eax
push ebx
push esi
call fcn.004119a0
mov edi, eax
mov dword [esp + 0x58], 2
push 1
lea eax, [esp + 0x5c]
push eax
push ebx
push esi
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x68], 0
push 1
lea eax, [esp + 0x6c]
push eax
push ebx
push dword [esp + 0xa0]
call fcn.004119a0
add esp, 0x40
mov dword [esp + 0x38], 1
push dword [esp + 0x60]
push dword [esp + 0x6c]
push edi
push esi
push eax
push 1
lea eax, [esp + 0x50]
push eax
push ebx
mov ebx, dword [esp + 0x84]
push ebx
call fcn.004119a0
add esp, 0x10
push eax
push ebp
push ebx
call fcn.004d47c0
mov edi, dword [esp + 0x88]
add esp, 0x20
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4d7bcd
push eax
push ebp
push ebx
call fcn.004d8b30
mov ebp, eax
mov byte [esp + 0x1f], 1
add esp, 0xc
mov dword [esp + 0x28], ebp
cmp dword [ebp + 0x20], 0xa
jne 0x4d7c27
cmp byte [edi + 0x171], 0
je 0x4d7c27
push 4
lea eax, [esp + 0x40]
mov dword [ebx], 3
push eax
lea esi, [ebp + 0x24]
mov dword [ebx + 4], ebp
push esi
push ebx
mov dword [esp + 0x4c], 2
mov dword [esp + 0x50], 3
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], 0
call fcn.004119a0
push dword [eax]
push eax
push esi
call fcn.00407bb0
add esp, 0x1c
mov byte [esp + 0x13], 1
mov esi, dword [esp + 0x14]
test dword [edi + 0x5c], esi
je 0x4d7c60
push ebp
call fcn.0040a680
add esp, 4
test al, al
jne 0x4d7c60
cmp byte [ebp + 0x45], al
je 0x4d7c47
cmp byte [ebp + 0x46], al
jne 0x4d7c60
mov eax, dword [ebp + 0x58]
add eax, 0x18
lea eax, [edi + eax*4]
push eax
push ebp
push ebx
call fcn.004d8d80
add esp, 0xc
mov byte [esp + 0x13], 1
test dword [edi + 0x160], esi
je 0x4d7d5b
push ebp
call fcn.0040a680
add esp, 4
test al, al
jne 0x4d7d5b
cmp byte [ebp + 0x45], al
jne 0x4d7d5b
lea esi, [ebp + 0x24]
mov dword [ebx], 3
mov dword [ebx + 4], ebp
cmp byte [esi + 0x10], 3
mov dword [esp + 0x38], esi
jne 0x4d7ca0
mov eax, esi
jmp 0x4d7cac
push 7
push esi
push ebx
call fcn.0040f420
add esp, 0xc
push eax
push ebx
call fcn.004d5e10
mov ebp, eax
mov dword [esp + 0x68], 3
push 1
lea eax, [esp + 0x6c]
push eax
push esi
push ebx
call fcn.004119a0
mov esi, dword [esp + 0x7c]
mov ebx, eax
push 1
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], 2
push eax
push ebp
push esi
call fcn.004119a0
mov edi, eax
mov dword [esp + 0x88], 1
push 1
lea eax, [esp + 0x8c]
push eax
push ebp
push esi
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x98], 0
push 1
lea eax, [esp + 0x9c]
push eax
push ebp
push dword [esp + 0xa8]
call fcn.004119a0
add esp, 0x48
push ebx
mov ebx, dword [esp + 0x68]
push edi
push esi
push eax
push 0x1b3
push ebx
call fcn.0041cea0
push dword [eax]
push eax
push dword [esp + 0x58]
call fcn.00407bb0
mov ebp, dword [esp + 0x4c]
add esp, 0x24
mov edi, dword [esp + 0x68]
mov byte [esp + 0x13], 1
mov esi, dword [ebp + 0x3c]
xor eax, eax
test esi, esi
je 0x4d7d81
mov ecx, dword [ebp + 0x38]
add ecx, 0x10
nop word [eax + eax]
cmp dword [ecx], 6
je 0x4d7ebf
inc eax
add ecx, 0x14
cmp eax, esi
jb 0x4d7d70
or eax, 0xffffffff
xor ecx, ecx
shr eax, 0x1f
xor al, 1
mov dword [esp + 0x60], eax
test esi, esi
je 0x4d7dad
mov edx, dword [ebp + 0x38]
add edx, 0x10
nop dword [eax]
cmp dword [edx], 3
je 0x4d7db0
inc ecx
add edx, 0x14
cmp ecx, esi
jb 0x4d7da0
or ecx, 0xffffffff
shr ecx, 0x1f
xor cl, 1
cmp dword [ebp + 0x20], 1
mov dword [esp + 0x38], ecx
jne 0x4d7df3
cmp byte [ebp + 0x45], 0
je 0x4d7df3
test al, al
je 0x4d7df3
cmp byte [edi + 0x16a], 0
je 0x4d7df3
push ebp
push ebx
mov dword [ebx], 2
mov dword [ebx + 4], ebp
call fcn.004e5000
push eax
push ebp
push ebx
call fcn.004d53a0
add esp, 0x14
mov byte [esp + 0x13], 1
cmp dword [edi + 0x174], 0
je 0x4d7e22
mov eax, dword [ebp + 0x20]
cmp eax, 8
je 0x4d7e22
cmp eax, 0xb
je 0x4d7e22
cmp eax, 0xc
je 0x4d7e22
push edi
push ebp
push ebx
call fcn.004d5660
add esp, 0xc
or al, byte [esp + 0x13]
setne byte [esp + 0x13]
cmp dword [ebp + 0x20], 3
jne 0x4d7f90
cmp byte [edi + 0x168], 0
jne 0x4d7f7b
cmp byte [edi + 0x169], 0
mov eax, dword [esp + 0x60]
je 0x4d7e4e
test al, al
jne 0x4d7f7b
cmp byte [edi + 0x167], 0
je 0x4d7e61
cmp byte [ebp + 0x45], 0
jne 0x4d7f7b
cmp byte [edi + 0x16b], 0
je 0x4d7e78
cmp byte [ebp + 0x45], 0
je 0x4d7e78
test al, al
jne 0x4d7f7b
cmp byte [edi + 0x16c], 0
je 0x4d7e90
cmp byte [esp + 0x38], 0
je 0x4d7e90
test al, al
jne 0x4d7f7b
cmp byte [edi + 0x16d], 0
je 0x4d7ed8
test al, al
je 0x4d7ed8
mov esi, dword [ebp + 0x3c]
xor edx, edx
test esi, esi
je 0x4d7ed8
mov ecx, dword [ebp + 0x38]
add ecx, 0x10
nop dword [eax]
cmp dword [ecx], 0x10
je 0x4d7ecf
inc edx
add ecx, 0x14
cmp edx, esi
jb 0x4d7eb0
jmp 0x4d7ed8
shr eax, 0x1f
xor al, 1
xor ecx, ecx
mov dword [esp + 0x60], eax
jmp 0x4d7d93
cmp edx, 0xffffffff
jne 0x4d7f7b
cmp byte [edi + 0x16e], 0
je 0x4d7f4e
test al, al
je 0x4d7f4e
mov edx, dword [ebp + 0x3c]
xor eax, eax
mov esi, dword [ebp + 0x5c]
test edx, edx
je 0x4d7f49
mov ecx, dword [ebp + 0x38]
add ecx, 0x10
cmp dword [ecx], 0xe
je 0x4d7f06
inc eax
add ecx, 0x14
cmp eax, edx
jb 0x4d7ef7
jmp 0x4d7f49
test eax, eax
js 0x4d7f49
mov edx, dword [ebp + 0x38]
lea ecx, [eax + eax*4]
movups xmm0, xmmword [edx + ecx*4]
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 5
jne 0x4d7f7b
movups xmm0, xmmword [edx + ecx*4]
psrldq xmm0, 0xc
movd eax, xmm0
mov ecx, dword [eax]
movzx eax, byte [ecx + 0x29]
push eax
push dword [ecx + 0x34]
push dword [ecx + 0x30]
call fcn.00407890
add esp, 0xc
add esi, eax
cmp esi, 0x10
jae 0x4d7f7b
cmp byte [edi + 0x164], 0
je 0x4d7f5d
cmp dword [ebp + 0x18], 3
je 0x4d7f7b
cmp byte [edi + 0x165], 0
je 0x4d7f6c
cmp dword [ebp + 0x18], 2
je 0x4d7f7b
cmp byte [edi + 0x166], 0
je 0x4d7f90
cmp byte [ebp + 0x44], 0
je 0x4d7f90
push ebp
push ebx
call fcn.004d4d70
mov cl, 1
add esp, 8
mov byte [esp + 0x13], cl
jmp 0x4d8374
mov edx, dword [ebp + 0x3c]
xor ecx, ecx
test edx, edx
je 0x4d7fb4
mov eax, dword [ebp + 0x38]
add eax, 0x10
nop
cmp dword [eax], 5
je 0x4d7faf
inc ecx
add eax, 0x14
cmp ecx, edx
jb 0x4d7fa0
jmp 0x4d7fb4
cmp ecx, 0xffffffff
jne 0x4d7fdb
mov eax, dword [ebp + 0x20]
cmp eax, 4
je 0x4d8316
cmp eax, 8
je 0x4d8316
cmp eax, 2
je 0x4d8316
cmp eax, 0xb
je 0x4d8316
cmp byte [edi + 0x17d], 0
je 0x4d80b7
push ebp
call fcn.0040a630
add esp, 4
test al, al
je 0x4d80b7
cmp dword [ebp + 0x18], 4
je 0x4d80b7
push dword [ebx + 0xc]
call fcn.00409da0
add esp, 4
test al, al
jne 0x4d80b7
push 0x20
push 0
push 0
mov dword [ebx], 2
mov dword [ebx + 4], ebp
call fcn.0040f5b0
mov ecx, dword [ebx + 0xc]
add esp, 0xc
cmp dword [ebp + 0x20], 9
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], edx
push 0x20
push 1
push ecx
jne 0x4d807e
call fcn.004097b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4d806c
mov eax, dword [esp + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x2c]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
lea eax, [ebp + 0x24]
push esi
push eax
call fcn.00407b40
push ebp
call fcn.00409250
jmp 0x4d80af
call fcn.004097b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4d80a7
mov eax, dword [esp + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x2c]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push esi
push ebp
push ebx
call fcn.004d53a0
add esp, 0xc
mov byte [esp + 0x13], 1
cmp byte [edi + 0x16f], 0
je 0x4d80e0
cmp dword [ebp + 0x20], 8
jne 0x4d80e0
push ebp
push ebx
call fcn.004d83b0
add esp, 8
or al, byte [esp + 0x13]
setne cl
mov byte [esp + 0x13], cl
jmp 0x4d8374
cmp byte [edi + 0x170], 0
je 0x4d81e2
cmp dword [ebp + 0x20], 8
jne 0x4d81e2
cmp dword [ebp + 0x18], 3
jne 0x4d81e2
cmp byte [ebp + 0x44], 0
je 0x4d81e2
push 0x20
mov dword [ebp + 0x18], 1
push 0
mov dword [ebx + 4], ebp
add ebp, 0x24
push 6
mov dword [ebx], 3
call fcn.0040f5b0
push 0x20
push 1
push dword [ebx + 0xc]
mov edi, eax
mov dword [esp + 0x78], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x4d815b
mov eax, dword [esp + 0x60]
push esi
mov dword [esi + 0x30], edi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push 1
lea eax, [esp + 0x64]
mov dword [esp + 0x64], 2
push eax
push ebp
push ebx
call fcn.004119a0
push esi
push eax
push pe_nt_image_headers32
push ebx
call fcn.0041cdb0
mov edi, eax
mov dword [esp + 0x80], 1
push 1
lea eax, [esp + 0x84]
push eax
push ebp
push ebx
call fcn.004119a0
mov esi, eax
mov dword [esp + 0x90], 1
push 1
lea eax, [esp + 0x94]
push eax
push ebp
push ebx
call fcn.004119a0
add esp, 0x40
push edi
push esi
push eax
push 0x1b2
push ebx
call fcn.0041ce20
push dword [eax]
push eax
push ebp
call fcn.00407bb0
mov cl, 1
add esp, 0x20
mov byte [esp + 0x13], cl
jmp 0x4d8374
cmp dword [ebp + 0x20], 0xa
jne 0x4d8218
push ebp
call fcn.0040a600
add esp, 4
test al, al
je 0x4d8218
cmp byte [edi + 0x172], 0
je 0x4d8218
push ebp
push ebx
call fcn.004d59e0
add esp, 8
or al, byte [esp + 0x13]
setne cl
mov byte [esp + 0x13], cl
jmp 0x4d8374
cmp byte [edi + 0x173], 0
je 0x4d82f5
mov eax, dword [ebp + 0x20]
cmp eax, 5
jne 0x4d8242
push ebp
push ebx
call fcn.004d6560
mov cl, 1
add esp, 8
mov byte [esp + 0x13], cl
jmp 0x4d8374
cmp eax, 0xd
jne 0x4d82f5
push ebp
push dword [ebx + 0xc]
mov dword [ebx], 3
mov dword [ebx + 4], ebp
call fcn.0045bd80
mov esi, eax
push 0x20
push 1
lea edi, [esi + 0x24]
mov dword [esi + 0x20], 0x10
push edi
push esi
mov dword [esi + 0x1c], 0x24
call fcn.00407af0
push esi
push ebx
call fcn.0041d130
movzx esi, byte [edi + 0x11]
push esi
push 0
push 0
call fcn.0040f5b0
push esi
push 1
push dword [ebx + 0xc]
mov dword [esp + 0x98], eax
mov dword [esp + 0x70], edx
call fcn.004097b0
mov esi, eax
add esp, 0x38
test esi, esi
je 0x4d82ca
mov eax, dword [esp + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x38]
push esi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push esi
push edi
push 0x111
push ebx
call fcn.0041cdb0
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00407b40
push ebp
call fcn.00409250
mov cl, 1
add esp, 0x1c
mov byte [esp + 0x13], cl
jmp 0x4d8374
cmp byte [edi + 0x17c], 0
je 0x4d8370
cmp dword [ebp + 0x20], 9
jne 0x4d8370
push ebp
push ebx
call fcn.004d62f0
mov cl, 1
add esp, 8
mov byte [esp + 0x13], cl
jmp 0x4d8374
push 0x20
push 0
push 0
mov dword [ebx], 2
mov dword [ebx + 4], ebp
call fcn.0040f5b0
push 0x20
push 1
push dword [ebx + 0xc]
mov edi, eax
mov dword [esp + 0x78], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x4d835c
mov eax, dword [esp + 0x60]
push esi
mov dword [esi + 0x30], edi
push ebx
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push esi
push 5
push ebp
call fcn.0040a420
mov cl, 1
add esp, 0xc
mov byte [esp + 0x13], cl
jmp 0x4d8374
mov cl, byte [esp + 0x13]
mov ebp, dword [esp + 0x20]
mov edx, ebp
mov dword [esp + 0x28], ebp
test edx, edx
je 0x4d8394
mov eax, dword [edx]
test eax, eax
je 0x4d8394
xor edx, edx
cmp dword [eax], edx
cmovne edx, eax
jmp 0x4d6a10
xor edx, edx
mov dword [esp + 0x20], edx
test ebp, ebp
jne 0x4d6a14
pop edi
pop esi
pop ebx
mov al, cl
pop ebp
add esp, 0x4c
ret