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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, dword [esp + 0x6c]
push esi
push edi
mov edi, dword [esp + 0x78]
mov esi, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], edx
mov eax, dword [edi]
mov edx, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x84]
mov dword [ecx], 0
mov dword [edi], 0
mov dword [esp + 0x10], edx
mov dword [eax], 0
jmp 0x49d450
mov edi, eax
jmp 0x49d450
mov edi, dword [esp + 0x78]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
cmp dword [esi], 6
jne 0x49d6a5
mov eax, dword [esp + 0x78]
mov ebx, edx
mov edi, dword [esp + 0x28]
sub ebx, dword [ecx]
mov ecx, dword [esi + 0x140]
sub edi, dword [eax]
mov eax, dword [esp + 0x80]
mov edx, dword [esi + 0x144]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov eax, ecx
and eax, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], 0
cmp eax, 0xffffffff
je 0x49d4db
sub ecx, dword [esi + 0x18]
sbb edx, dword [esi + 0x1c]
xor eax, eax
cmp eax, edx
jb 0x49d4bd
ja 0x49d4b1
cmp edi, ecx
jb 0x49d4bd
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], ecx
or ecx, edx
jne 0x49d4db
mov eax, dword [esi + 0x148]
cmp eax, dword [esi + 0x20]
jne 0x49d4db
mov eax, dword [esi + 0x14c]
cmp eax, dword [esi + 0x24]
je 0x49dd3a
mov ecx, dword [esi + 0x148]
mov eax, ecx
mov edx, dword [esi + 0x14c]
and eax, edx
cmp eax, 0xffffffff
je 0x49d515
sub ecx, dword [esi + 0x20]
sbb edx, dword [esi + 0x24]
xor eax, eax
cmp eax, edx
jb 0x49d515
ja 0x49d502
cmp ebx, ecx
jb 0x49d515
mov dword [esp + 0x24], 1
mov eax, 1
mov dword [esp + 0x14], ecx
jmp 0x49d519
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x18]
lea ecx, [esi + 0x68]
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x24]
mov edx, ebx
push eax
push ebp
push dword [esp + 0x34]
lea eax, [esp + 0x28]
push eax
xor eax, eax
cmp dword [esi + 0x2f8], eax
cmovne edx, eax
call fcn.0049afc0
mov ecx, dword [esi + 0x88]
mov edi, eax
mov eax, dword [esp + 0x84]
mov dword [eax], ecx
mov ecx, dword [esi + 0x2f8]
test ecx, ecx
je 0x49d56b
mov edx, dword [esi + 0x300]
add edx, ecx
jmp 0x49d56d
mov edx, ebx
mov ebx, dword [esp + 0x14]
lea ecx, [esi + 0x1d8]
push ebx
call fcn.0049ade0
cmp dword [esi + 0x2f8], 0
jne 0x49d58a
add dword [esp + 0x18], ebx
add dword [esi + 0x300], ebx
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x1c]
add ebp, eax
add dword [ecx], eax
add dword [esi + 0x18], eax
mov eax, dword [esp + 0x70]
adc dword [esi + 0x1c], 0
add dword [eax], ebx
mov eax, 0
add ebx, dword [esi + 0x20]
mov dword [esi + 0x20], ebx
adc eax, dword [esi + 0x24]
mov dword [esp + 0x74], eax
mov dword [esi + 0x24], eax
test edi, edi
jne 0x49dd49
mov edx, dword [esp + 0x84]
mov ecx, dword [edx]
cmp ecx, 1
jne 0x49dd19
mov cx, word [esi + 0x10]
call fcn.0049ae40
mov edx, dword [esi + 0x14]
xor ecx, ecx
add edx, eax
adc ecx, ecx
add edx, dword [esi + 0x18]
adc ecx, dword [esi + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.0049aea0
push dword [esp + 0x74]
mov edi, eax
lea ecx, [esp + 0x30]
push ebx
add ecx, edi
call fcn.0049aea0
add edi, eax
lea ecx, [esi + 0x268]
push edi
lea edx, [esp + 0x30]
call fcn.004a24d0
add dword [esi + 0x30], edi
mov eax, dword [esp + 0x84]
adc dword [esi + 0x34], 0
add dword [esi + 0x28], 1
mov dword [esi], 7
adc dword [esi + 0x2c], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [eax], 0
mov ecx, dword [esi + 0x140]
mov eax, ecx
mov edx, dword [esi + 0x144]
and eax, edx
cmp eax, 0xffffffff
je 0x49d676
cmp ecx, dword [esi + 0x18]
jne 0x49dd3a
cmp edx, dword [esi + 0x1c]
jne 0x49dd3a
mov ecx, dword [esi + 0x148]
mov eax, ecx
mov edx, dword [esi + 0x14c]
and eax, edx
cmp eax, 0xffffffff
je 0x49d69d
cmp ecx, dword [esi + 0x20]
jne 0x49dd3a
cmp edx, dword [esi + 0x24]
jne 0x49dd3a
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x28]
mov ecx, dword [edi]
sub ebx, ecx
jne 0x49d6b8
cmp dword [esi], 7
jne 0x49dd8b
mov eax, dword [esi]
cmp eax, 7
ja case.0x49d6c3.6
jmp dword [eax*4 + 0x49ddb4]
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jae 0x49d708
cmp ecx, 6
jae 0x49d6e6
mov al, byte [ebp]
cmp al, byte [ecx + 0x4c1580]
jne 0x49dda4
cmp dword [esi + 0x2f0], 0
jne 0x49dd70
mov al, byte [ebp]
inc ebp
mov byte [ecx + esi + 0x324], al
inc dword [esi + 4]
inc dword [edi]
jmp case.0x49d6c3.6
movzx edx, byte [esi + 0x32a]
lea ecx, [esi + 0x32a]
movzx eax, byte [esi + 0x32b]
shl dx, 8
or dx, ax
mov word [esi + 0x10], dx
mov edx, 2
call fcn.004a1380
cmp eax, dword [esi + 0x32c]
jne 0x49dd55
movzx eax, word [esi + 0x10]
mov ecx, 0xf
cmp cx, ax
sbb ecx, ecx
and ecx, 4
cmp eax, 0xf
ja 0x49dd5a
add dword [esi + 0x48], 1
lea ecx, [esi + 0x268]
mov dword [esi + 0x30], 0
adc dword [esi + 0x4c], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
call fcn.004a2bd0
mov dword [esi], 5
mov dword [esi + 4], 0
jmp 0x49d448
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x49d83f
movzx eax, byte [ebp]
inc ebp
mov byte [esi + 0x324], al
lea eax, [ecx + 1]
mov dword [esi + 4], eax
inc dword [edi]
mov al, byte [esi + 0x324]
test al, al
jne 0x49d82d
cmp dword [esi + 0x2f4], ecx
jne 0x49dd3a
push dword [esi + 0x2c]
lea ecx, [esi + 0x325]
push dword [esi + 0x28]
call fcn.0049aea0
inc eax
mov dword [esi + 0x3c], 0
add dword [esi + 0x30], eax
lea edx, [esi + 0x304]
lea ecx, [esi + 0x268]
mov dword [esi + 0xc], eax
adc dword [esi + 0x34], 0
mov dword [esi + 0x38], eax
call fcn.004a2ae0
lea ecx, [esi + 0x268]
call fcn.004a2bd0
push dword [esi + 0xc]
lea edx, [esi + 0x324]
or ecx, 0xffffffff
call fcn.004a14c0
mov dword [esi + 0x60], eax
mov dword [esi], 1
jmp 0x49d444
movzx eax, al
lea eax, [eax*4 + 4]
mov dword [esi + 0x14], eax
jmp case.0x49d6c3.6
mov eax, dword [esi + 0x14]
cmp ecx, eax
je 0x49d86c
sub eax, ecx
cmp eax, ebx
cmovbe ebx, eax
lea eax, [esi + 0x324]
push ebx
add eax, ecx
push ebp
push eax
call fcn.004a40c0
add dword [esi + 4], ebx
add esp, 0xc
add dword [edi], ebx
add ebp, ebx
jmp 0x49d448
lea edi, [esi + 0x140]
lea edx, [esi + 0x324]
mov ecx, edi
call fcn.0049b5f0
test eax, eax
jne 0x49dda9
movzx ebx, byte [edi + 0x10]
and ebx, 3
mov eax, ebx
shl eax, 5
cmp dword [eax + edi + 0x18], 0x21
jne 0x49dd7c
cmp dword [eax + edi + 0x1c], 0
jne 0x49dd7c
cmp dword [eax + edi + 0x20], 1
jne 0x49dd7c
cmp byte [eax + edi + 0x24], 0x28
ja 0x49dd7c
xor edi, edi
test ebx, ebx
je 0x49d914
lea eax, [esi + 0x160]
nop dword [eax + eax]
mov edx, dword [eax - 8]
mov ecx, dword [eax - 4]
cmp edx, 3
jne 0x49d8e4
test ecx, ecx
jne 0x49d8e4
cmp dword [eax], 1
jmp 0x49d906
add edx, 0xfffffffd
adc ecx, 0xffffffff
test ecx, ecx
ja 0x49dd7c
jb 0x49d8fd
cmp edx, 7
ja 0x49dd7c
mov ecx, dword [eax]
test ecx, ecx
je 0x49d90c
cmp ecx, 4
jne 0x49dd7c
inc edi
add eax, 0x20
cmp edi, ebx
jb 0x49d8d0
add dword [esi + 0x58], 1
lea ecx, [esi + 0x1d8]
movzx edx, word [esi + 0x10]
adc dword [esi + 0x5c], 0
and edx, 0xf
mov dword [esi], 6
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
call fcn.0049adb0
cmp dword [esi + 0x2e8], 0
jne 0x49dd66
push dword [esi + 0x2fc]
lea ecx, [esi + 0x68]
push dword [esi + 0x2f8]
lea edx, [esi + 0x140]
call fcn.0049b7a0
test eax, eax
jne 0x49dda9
jmp 0x49d444
mov eax, dword [esi + 0x18]
add eax, dword [esi + 8]
test al, 3
je 0x49d9b9
test ebx, ebx
je 0x49dd8b
lea eax, [ecx + 1]
mov dword [edi], eax
inc dword [esi + 8]
mov al, byte [ebp]
inc ebp
test al, al
je case.0x49d6c3.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x5c
ret 0x18
mov cx, word [esi + 0x10]
call fcn.0049ae40
mov ecx, dword [esi + 4]
mov edi, eax
sub eax, ecx
je 0x49da0a
test ebx, ebx
je 0x49dd8b
cmp eax, ebx
cmovbe ebx, eax
lea eax, [esi + 0x324]
push ebx
add eax, ecx
push ebp
push eax
call fcn.004a40c0
mov eax, dword [esp + 0x84]
add esp, 0xc
add dword [esi + 4], ebx
add ebp, ebx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x10]
add dword [eax], ebx
cmp edi, dword [esi + 4]
jne 0x49d440
lea ecx, [esi + 0x1d8]
mov dword [esi], 5
lea edx, [esp + 0x2c]
mov dword [esi + 4], 0
call fcn.0049ad20
test eax, eax
je 0x49da93
lea edx, [esi + 0x324]
lea ecx, [esp + 0x2c]
sub edi, 4
jb 0x49da51
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x49da56
add ecx, 4
add edx, 4
sub edi, 4
jae 0x49da40
cmp edi, 0xfffffffc
je 0x49da93
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x49d9aa
cmp edi, 0xfffffffd
je 0x49da93
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x49d9aa
cmp edi, 0xfffffffe
je 0x49da93
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x49d9aa
cmp edi, 0xffffffff
je 0x49da93
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x49d9aa
cmp dword [esi + 0x2f4], 0
je 0x49d444
mov eax, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [eax], 1
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov eax, dword [esi + 4]
cmp eax, dword [esi + 0xc]
jae 0x49dae5
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dl, byte [ebp]
inc ebp
mov cl, byte [eax + esi + 0x324]
inc eax
mov dword [esi + 4], eax
cmp dl, cl
jne 0x49d9aa
jmp 0x49d448
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x3c], edx
ja 0x49db38
jb 0x49daf9
cmp ecx, eax
jae 0x49db38
sub eax, ecx
sbb edx, dword [esi + 0x3c]
xor ecx, ecx
cmp ecx, edx
jb 0x49db0c
ja 0x49db0a
cmp ebx, eax
jbe 0x49db0c
mov ebx, eax
mov ecx, dword [esi + 0x60]
mov edx, ebp
push ebx
call fcn.004a14c0
push ebx
lea ecx, [esi + 0x268]
mov dword [esi + 0x60], eax
mov edx, ebp
call fcn.004a24d0
add dword [edi], ebx
add ebp, ebx
add dword [esi + 0x38], ebx
adc dword [esi + 0x3c], 0
jmp 0x49d448
and ecx, 3
or ecx, 0
je 0x49db7b
mov dl, byte [ebp]
inc ebp
mov ecx, dword [esi + 0x60]
movzx eax, dl
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4dc680]
mov dword [esi + 0x60], ecx
inc dword [edi]
add dword [esi + 0x38], 1
adc dword [esi + 0x3c], 0
add dword [esi + 0x30], 1
adc dword [esi + 0x34], 0
test dl, dl
jne 0x49d9aa
jmp 0x49d448
add eax, 4
mov dword [esi], 2
lea ecx, [esi + 0x268]
mov dword [esi + 0x30], eax
adc edx, 0
mov dword [esi + 4], 0
mov dword [esi + 0x34], edx
lea edx, [esp + 0x2c]
call fcn.004a2ae0
lea edx, [esi + 0x304]
mov edi, 0x1c
lea ecx, [esp + 0x2c]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x49d9aa
add ecx, 4
add edx, 4
sub edi, 4
jae 0x49dbb2
jmp 0x49d444
cmp dword [esi + 4], 4
jae 0x49dbed
lea eax, [ecx + 1]
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov al, byte [ebp]
mov byte [ecx + esi + 0x324], al
inc dword [esi + 4]
inc ebp
jmp case.0x49d6c3.6
mov eax, dword [esi + 0x60]
not eax
mov dword [esi], 3
mov dword [esi + 4], 0
cmp eax, dword [esi + 0x324]
jne 0x49d9aa
jmp case.0x49d6c3.6
mov eax, 0xc
sub eax, dword [esi + 4]
cmp eax, ebx
cmovbe ebx, eax
lea eax, [esi + 0x324]
add eax, dword [esi + 4]
push ebx
push ebp
push eax
call fcn.004a40c0
add dword [esi + 4], ebx
add esp, 0xc
add dword [edi], ebx
add ebp, ebx
cmp dword [esi + 4], 0xc
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x10]
jne 0x49d450
add dword [esi + 0x50], 1
lea ecx, [esi + 0x328]
movzx ebx, word [esi + 0x10]
mov edx, 4
adc dword [esi + 0x54], 0
mov dword [esi], 4
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov eax, dword [ecx]
mul edx
add eax, 4
adc edx, 0
cmp dword [esi + 0x30], eax
jne 0x49d9aa
cmp dword [esi + 0x34], edx
jne 0x49d9aa
mov edx, 6
call fcn.004a1380
cmp dword [esi + 0x324], eax
jne 0x49d9aa
movzx ecx, byte [esi + 0x32c]
movzx eax, byte [esi + 0x32d]
shl cx, 8
or cx, ax
cmp bx, cx
jne 0x49d9aa
cmp byte [esi + 0x32e], 0x59
jne 0x49d9aa
cmp byte [esi + 0x32f], 0x5a
jne 0x49d9aa
jmp 0x49d448
cmp byte [ebp], 0
je 0x49dd06
test byte [esi + 0x40], 3
jne 0x49dda4
mov dword [esi + 4], 0
mov dword [esi], 0
jmp case.0x49d6c3.6
lea eax, [ecx + 1]
inc ebp
mov dword [edi], eax
add dword [esi + 0x40], 1
adc dword [esi + 0x44], 0
jmp case.0x49d6c3.6
mov eax, dword [esi + 0x140]
cmp eax, dword [esi + 0x18]
jne 0x49dd70
mov eax, dword [esi + 0x144]
cmp eax, dword [esi + 0x1c]
jne 0x49dd70
cmp ecx, 3
jne 0x49dd70
mov dword [edx], 0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5c
ret 0x18
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18
mov ecx, 0x11
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x5c
ret 0x18
mov dword [esi + 0x2ec], 1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x5c
ret 0x18
mov eax, dword [esp + 0x84]
pop edi
pop esi
pop ebp
mov dword [eax], 3
xor eax, eax
pop ebx
add esp, 0x5c
ret 0x18
mov eax, 0x11
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18