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

Disassembly:
sub esp, 0x54
mov eax, dword [0x58bb30]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
push ebx
mov ebx, ecx
mov ecx, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x64]
mov dword [eax + 0x3c], ecx
mov dword [esp + 0x34], ecx
lea edx, [ebx + 0x145e8]
mov ecx, dword [esp + 0x6c]
push edi
mov dword [eax], 4
xor edi, edi
mov dword [eax + 0x24], 0x589200
mov dword [eax + 0x28], 0xd8
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], esi
mov byte [eax + 4], 1
mov dword [eax + 8], ecx
xor eax, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], edx
test ecx, ecx
jle 0x49d837
push ebp
add eax, dword [esp + 0x78]
mov ecx, edx
push 4
push eax
call fcn.004a0da0
xor ebp, ebp
mov dword [esp + 0x20], 0
xor eax, eax
mov dword [esp + 0x44], ebp
xor edx, edx
mov dword [esp + 0x48], ebp
xor ebx, ebx
mov dword [esp + 0x4c], ebp
xor ecx, ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov ebp, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
cmp edi, esi
jge 0x49d81b
imul ebx, dword [esp + 0x2c]
mov edi, ecx
mov ecx, edx
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ecx
imul eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + ebp]
mov ecx, edi
imul ecx, dword [esp + 0x1c]
movzx esi, dl
add ecx, eax
mov eax, dword [esp + 0x20]
add ecx, ebx
mov ebx, dword [esp + 0x30]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
shr ecx, 3
sub cl, dl
sub dl, byte [esp + 0x20]
mov dword [esp + 0x20], esi
mov eax, dword [eax + 0x145b8]
movsx esi, cl
shl esi, 3
mov byte [ebx + eax], cl
inc ebx
mov ecx, dword [esp + 0x24]
mov eax, esi
mov dword [esp + 0x30], ebx
movsx ebx, dl
cdq
xor eax, edx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x44]
sub eax, edx
add ebx, eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x44], ebx
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x48], eax
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x10]
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x4c], eax
mov eax, esi
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x50], eax
lea eax, [esi + ecx]
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x54], eax
mov eax, esi
sub eax, edi
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x58], eax
lea eax, [esi + edi]
cdq
xor eax, edx
sub eax, edx
add dword [esp + 0x5c], eax
test byte [esp + 0x28], 0x1f
jne 0x49d7e9
xor edx, edx
mov eax, 1
mov dword [esp + 0x44], edx
mov ecx, dword [esp + eax*4 + 0x44]
cmp ecx, ebx
jae 0x49d72c
mov ebx, ecx
mov edx, eax
mov dword [esp + eax*4 + 0x44], 0
inc eax
cmp eax, 7
jb 0x49d720
dec edx
cmp edx, 5
ja case.default.0x49d744
jmp dword [edx*4 + 0x49d884]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp ebx, 0xfffffff0
jl 0x49d7ff
dec ebx
mov dword [esp + 0x14], ebx
jmp 0x49d7ff
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp ebx, 0x10
jge 0x49d7ff
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x49d7ff
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, 0xfffffff0
jl 0x49d7ff
dec eax
mov dword [esp + 0x18], eax
jmp 0x49d7ff
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp eax, 0x10
jge 0x49d7ff
inc eax
mov dword [esp + 0x18], eax
jmp 0x49d7ff
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp ecx, 0xfffffff0
jl 0x49d7fb
dec ecx
mov dword [esp + 0x1c], ecx
jmp 0x49d7fb
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp ecx, 0x10
jge 0x49d7fb
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x49d7fb
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
jmp 0x49d7ff
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add ebp, dword [esp + 0x74]
inc dword [esp + 0x28]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
cmp ebp, esi
jl 0x49d640
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
inc edi
mov edx, dword [esp + 0x40]
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x74]
jl 0x49d5e2
mov ebx, dword [esp + 0x38]
pop ebp
push esi
push dword [ebx + 0x145b8]
push dword [esp + 0x40]
call fcn.00531230
xor eax, eax
lea ecx, [ebx + 0x145e8]
add esp, 0xc
cmp dword [ebx + 0x51c], 2
setne al
lea eax, [eax*2 + 1]
push eax
mov eax, dword [esp + 0x78]
add eax, esi
push eax
call fcn.004a0da0
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0052f708
add esp, 0x54
ret 0x14