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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
push ebx
mov dword [esp + 0x40], eax
mov ebx, 0x20
mov eax, dword [esp + 0x64]
push ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
push esi
push edi
test eax, eax
jle 0x49e839
mov ecx, eax
mov edi, edx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x6c]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp ecx, 3
jne 0x49e84d
lea esi, [ecx - 2]
jmp 0x49e854
mov esi, 0x20
sar esi, cl
xor dl, dl
mov dword [esp + 0x18], esi
mov byte [esp + 0x13], dl
mov ebp, ecx
mov dword [esp + 0x44], ebp
cmp ecx, eax
jge 0x49ea4d
mov eax, esi
mov edx, esi
shl eax, 8
neg edx
mov dword [esp + 0x60], eax
lea eax, [esi*4]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov eax, ecx
shl eax, 8
add edi, eax
shl edx, 8
sub esi, eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x78]
add eax, 0x414
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], esi
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
jmp 0x49e8c0
mov edi, dword [esp + 0x74]
cmp dword [edi + ebp*4], 0xffffffff
mov edi, dword [esp + 0x1c]
jne 0x49ea1b
test ebp, ebp
jle 0x49e8f8
mov eax, dword [esp + 0x78]
dec eax
cmp ebp, eax
jge 0x49e8f8
mov eax, dword [esp + 0x74]
cmp dword [eax + ebp*4 - 4], 0
jne 0x49e8f8
cmp dword [eax + ebp*4 + 4], 0
jne 0x49e8f8
xor ecx, ecx
jmp 0x49e9fc
mov eax, dword [ecx]
xor esi, esi
mov dword [esp + 0x54], eax
mov edx, 0x400
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], 1
cmp ebx, 1
jl 0x49e9e1
mov ecx, dword [esp + 0x24]
lea eax, [ebx + ebx]
sub ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x49e930
mov eax, ecx
mov dword [esp + 0x30], edi
mov edx, 4
mov dword [esp + 0x34], eax
xor ebx, ebx
mov dword [esp + 0x38], edx
mov ecx, edi
mov esi, ecx
cmp eax, 8
jle 0x49e953
mov eax, 8
lea ebp, [ecx + eax]
cmp ecx, ebp
jae 0x49e995
mov eax, dword [esp + 0x14]
lea edi, [ecx + eax]
mov al, byte [edi + eax]
mov dl, byte [edi]
sub al, dl
sub dl, byte [esi]
movsx ecx, al
movsx eax, dl
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x20
jl 0x49e981
mov eax, 0x20
add ebx, eax
inc esi
mov eax, dword [esp + 0x14]
inc edi
cmp esi, ebp
jb 0x49e961
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add ecx, 0x40
sub eax, 0x40
mov dword [esp + 0x30], ecx
sub edx, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
jne 0x49e947
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
cmp ebx, edx
jge 0x49ea7a
mov esi, eax
mov edx, ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
cmp ebx, 0x10
jge 0x49ea7e
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
imul edx, dword [esp + 0x54]
xor ecx, ecx
mov eax, dword [esp + 0x74]
cmp edx, 0xc000
setge cl
dec ecx
and ecx, esi
mov esi, dword [esp + 0x24]
mov dword [eax + ebp*4], ecx
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x78]
sar eax, 1
cmp ecx, eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
jle 0x49ea1b
mov byte [esp + 0x13], 1
add ecx, dword [esp + 0x58]
add ebp, eax
add esi, dword [esp + 0x5c]
add edi, dword [esp + 0x60]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], edi
cmp ebp, edx
jl 0x49e8c0
mov dl, byte [esp + 0x13]
mov ecx, dword [esp + 0x2c]
test dl, dl
jne 0x49ea5a
mov eax, ebx
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x78]
inc ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
cmp ecx, 4
jl 0x49e843
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
cmp eax, ebx
jle 0x49e930
jmp 0x49e9d9