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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x304
mov eax, dword [0x6b66bc]
xor eax, esp
mov dword [esp + 0x300], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x8c], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x74], edi
test eax, eax
je 0x49d3db
mov dword [eax], 0
movzx eax, word [esi]
mov dword [esp + 0x9c], esi
add esi, 2
cmp eax, 0x22
jne 0x49e1d0
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
mov dword [esp + 0x28], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswxdigit]
mov dword [esp + 0x24], eax
movzx ebx, word [esi]
mov edx, ebx
cmp edx, 0x40
jae 0x49d41f
mov dword [esp + 0x18], 0x2401
mov dword [esp + 0x10], 4
jmp 0x49d438
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
xor ecx, ecx
and edx, 0x3f
xor eax, eax
bts ecx, edx
cmp edx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp edx, 0x40
cmovae eax, ecx
and ecx, dword [esp + 0x18]
and eax, dword [esp + 0x10]
or ecx, eax
jne 0x49e19b
cmp ebx, 0x5c
je 0x49d520
mov eax, ebx
mov dword [esp + 0x10], eax
test ax, ax
je 0x49e193
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d4a2
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x3c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d4dc
lea eax, [esp + 0x3c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x40], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x40]
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
jmp 0x49e180
movzx ecx, word [esi + 2]
add esi, 2
cmp ecx, 0x5c
jne 0x49d5d9
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d55a
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x44], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d594
lea eax, [esp + 0x44]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0x5c
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x48], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x48]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
jmp 0x49e180
cmp ecx, 0x22
jne 0x49d68b
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d60c
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d646
lea eax, [esp + 0x4c]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xc0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0x22
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x50], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x50]
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
jmp 0x49e180
cmp ecx, 0x27
jne 0x49d73d
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d6be
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x54], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d6f8
lea eax, [esp + 0x54]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xd0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0x27
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x58], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x58]
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
jmp 0x49e180
cmp ecx, 0x6e
jne 0x49d7ef
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d770
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x5c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d7aa
lea eax, [esp + 0x5c]
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], eax
lea eax, [esp + 0xe0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0xa
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x60], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x60]
mov dword [esp + 0xec], edi
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xe8]
jmp 0x49e180
cmp ecx, 0x72
jne 0x49d8a1
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d822
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x64], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d85c
lea eax, [esp + 0x64]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0xd
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x68], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x68]
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
jmp 0x49e180
cmp ecx, 0x74
jne 0x49d953
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49d8d4
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x6c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49d90e
lea eax, [esp + 0x6c]
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], eax
lea eax, [esp + 0x100]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 9
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x70], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x70]
mov dword [esp + 0x10c], edi
mov dword [esp + 0x108], eax
lea eax, [esp + 0x108]
jmp 0x49e180
lea eax, [ecx - 0x30]
cmp eax, 8
jae 0x49db32
lea eax, [esp + 0x1a8]
mov byte [esp + 0x1a4], 0
mov dword [esp + 0x198], eax
mov ebx, eax
lea eax, [esp + 0x1c8]
mov edi, ecx
mov dword [esp + 0x1a0], eax
movzx eax, di
mov dword [esp + 0x19c], ebx
cmp eax, 0x40
jae 0x49d9a8
mov dword [esp + 0x10], 0x2401
mov dword [esp + 0x18], 4
jmp 0x49d9c1
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
xor edx, edx
xor ecx, ecx
and eax, 0x3f
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x10]
and ecx, dword [esp + 0x18]
or edx, ecx
mov ecx, dword [esp + 0x198]
jne 0x49da3d
movzx eax, di
add eax, 0xffffffd0
cmp eax, 8
jae 0x49da3d
mov eax, ebx
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 6
jge 0x49da3d
lea eax, [ebx + 2]
cmp eax, dword [esp + 0x1a0]
jb 0x49da24
push 1
lea ecx, [esp + 0x19c]
call fcn.004b4af0
mov ebx, dword [esp + 0x19c]
mov word [ebx], di
mov ebx, dword [esp + 0x19c]
movzx edi, word [esi + 2]
add ebx, 2
add esi, 2
jmp 0x49d987
cmp word [ebx], 0
mov edi, dword [esp + 0x74]
je 0x49da53
xor eax, eax
mov word [ebx], ax
mov ecx, dword [esp + 0x198]
push 8
push 0
push ecx
call dword [esp + 0x34]
movzx eax, ax
add esp, 0xc
mov dword [esp + 0x10], eax
test ax, ax
je 0x49db21
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
lea edx, [ecx + 1]
test ecx, ecx
setle al
add edx, eax
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49da99
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x78], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49dad3
lea eax, [esp + 0x78]
mov dword [esp + 0x114], edi
mov dword [esp + 0x110], eax
lea eax, [esp + 0x110]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x7c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49db19
lea eax, [esp + 0x7c]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], eax
lea eax, [esp + 0x118]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
xor ecx, ecx
mov word [eax + ebx*2], cx
lea ecx, [esp + 0x198]
call fcn.004b3bd0
jmp 0x49d403
cmp ecx, 0x78
jne 0x49dd26
movzx eax, word [esi + 2]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x49dd26
lea eax, [esp + 0x1d8]
mov byte [esp + 0x1d4], 0
mov dword [esp + 0x1c8], eax
mov edx, eax
lea eax, [esp + 0x1f8]
mov dword [esp + 0x1d0], eax
movzx ebx, word [esi + 2]
add esi, 2
mov dword [esp + 0x1cc], edx
cmp ebx, 0x40
jae 0x49db9a
mov dword [esp + 0x10], 0x2401
mov dword [esp + 0x18], 4
jmp 0x49dbb3
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
xor ecx, ecx
and ebx, 0x3f
xor eax, eax
bts ecx, ebx
cmp ebx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp ebx, 0x40
cmovae eax, ecx
and ecx, dword [esp + 0x10]
and eax, dword [esp + 0x18]
or ecx, eax
jne 0x49dc2a
movzx eax, word [esi]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x49dc23
mov ecx, dword [esp + 0x1cc]
movzx ebx, word [esi]
lea eax, [ecx + 2]
cmp eax, dword [esp + 0x1d0]
jb 0x49dc11
push 1
lea ecx, [esp + 0x1cc]
call fcn.004b4af0
mov ecx, dword [esp + 0x1cc]
mov word [ecx], bx
mov edx, dword [esp + 0x1cc]
add edx, 2
jmp 0x49db75
mov edx, dword [esp + 0x1cc]
cmp word [edx], 0
je 0x49dc35
xor eax, eax
mov word [edx], ax
push 0x10
push 0
push dword [esp + 0x1d0]
call dword [esp + 0x34]
movzx eax, ax
add esp, 0xc
mov dword [esp + 0x10], eax
test ax, ax
je 0x49dd15
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49dc81
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x80], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49dcc1
lea eax, [esp + 0x80]
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], eax
lea eax, [esp + 0x120]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x84], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49dd0d
lea eax, [esp + 0x84]
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], eax
lea eax, [esp + 0x128]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
xor ecx, ecx
mov word [eax + ebx*2], cx
lea ecx, [esp + 0x1c8]
call fcn.004b3bd0
jmp 0x49d403
cmp word [esi], 0x75
jne 0x49de85
movzx eax, word [esi + 2]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x49de85
lea eax, [esp + 0x170]
mov byte [esp + 0x16c], 0
mov dword [esp + 0x160], eax
mov edx, eax
lea eax, [esp + 0x178]
mov dword [esp + 0x168], eax
movzx ebx, word [esi + 2]
add esi, 2
mov dword [esp + 0x164], edx
cmp ebx, 0x40
jae 0x49dd8f
mov dword [esp + 0x10], 0x2401
mov dword [esp + 0x18], 4
jmp 0x49dda8
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
xor ecx, ecx
and ebx, 0x3f
xor eax, eax
bts ecx, ebx
cmp ebx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp ebx, 0x40
cmovae eax, ecx
and ecx, dword [esp + 0x10]
and eax, dword [esp + 0x18]
or ecx, eax
jne 0x49de29
movzx eax, word [esi]
push eax
call dword [esp + 0x28]
mov edx, dword [esp + 0x168]
add esp, 4
test eax, eax
je 0x49de29
mov eax, edx
sub eax, dword [esp + 0x160]
and eax, 0xfffffffe
cmp eax, 8
jge 0x49de29
movzx ebx, word [esi]
lea eax, [edx + 2]
cmp eax, dword [esp + 0x168]
jb 0x49de17
push 1
lea ecx, [esp + 0x164]
call fcn.004b4af0
mov edx, dword [esp + 0x164]
mov word [edx], bx
mov edx, dword [esp + 0x164]
add edx, 2
jmp 0x49dd6a
cmp word [edx], 0
je 0x49de34
xor eax, eax
mov word [edx], ax
push 0x10
push 0
push dword [esp + 0x168]
call dword [esp + 0x34]
movzx ecx, ax
add esp, 0xc
mov eax, ecx
mov dword [esp + 0x2c], eax
xor eax, eax
test cx, cx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x150], ecx
setne al
push eax
mov dword [esp + 0x158], eax
mov eax, ecx
push eax
mov ecx, edi
call fcn.0040edd0
lea ecx, [esp + 0x160]
call fcn.004b3bd0
jmp 0x49d403
cmp word [esi], 0x55
jne 0x49e006
movzx eax, word [esi + 2]
push eax
call dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x49e006
lea eax, [esp + 0x188]
mov byte [esp + 0x184], 0
mov dword [esp + 0x178], eax
mov edx, eax
lea eax, [esp + 0x198]
mov dword [esp + 0x180], eax
movzx ebx, word [esi + 2]
add esi, 2
mov dword [esp + 0x17c], edx
cmp ebx, 0x40
jae 0x49deee
mov dword [esp + 0x10], 0x2401
mov dword [esp + 0x18], 4
jmp 0x49df07
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
xor ecx, ecx
and ebx, 0x3f
xor eax, eax
bts ecx, ebx
cmp ebx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp ebx, 0x40
cmovae eax, ecx
and ecx, dword [esp + 0x10]
and eax, dword [esp + 0x18]
or ecx, eax
jne 0x49df88
movzx eax, word [esi]
push eax
call dword [esp + 0x28]
mov edx, dword [esp + 0x180]
add esp, 4
test eax, eax
je 0x49df88
mov eax, edx
sub eax, dword [esp + 0x178]
and eax, 0xfffffffe
cmp eax, 0x10
jge 0x49df88
movzx ebx, word [esi]
lea eax, [edx + 2]
cmp eax, dword [esp + 0x180]
jb 0x49df76
push 1
lea ecx, [esp + 0x17c]
call fcn.004b4af0
mov edx, dword [esp + 0x17c]
mov word [edx], bx
mov edx, dword [esp + 0x17c]
add edx, 2
jmp 0x49dec9
cmp word [edx], 0
je 0x49df93
xor eax, eax
mov word [edx], ax
push 0x10
push 0
push dword [esp + 0x180]
call dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
lea ecx, [esp + 0x1f8]
push 1
push eax
call fcn.0049e860
mov eax, dword [esp + 0x300]
mov ecx, dword [esp + 0x2fc]
push eax
mov dword [esp + 0x15c], ecx
push ecx
mov ecx, edi
mov dword [esp + 0x164], eax
call fcn.0040edd0
mov eax, dword [esp + 0x2f8]
test eax, eax
je 0x49dff5
push eax
call fcn.0043f8f0
add esp, 4
lea ecx, [esp + 0x178]
call fcn.004b3bd0
jmp 0x49d403
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49e030
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x88], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49e070
lea eax, [esp + 0x88]
mov dword [esp + 0x134], edi
mov dword [esp + 0x130], eax
lea eax, [esp + 0x130]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, 0x5c
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x8c], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e0bd
lea eax, [esp + 0x8c]
mov dword [esp + 0x13c], edi
mov dword [esp + 0x138], eax
lea eax, [esp + 0x138]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
xor ecx, ecx
mov word [eax + ebx*2], cx
movzx eax, word [esi]
mov dword [esp + 0x10], eax
test ax, ax
je 0x49e193
mov ecx, dword [edi + 4]
xor eax, eax
test ecx, ecx
lea ebx, [ecx - 1]
cmovle ebx, eax
test ecx, ecx
setle al
lea edx, [eax + 1]
add edx, ecx
mov dword [edi + 4], edx
cmp edx, dword [edi + 8]
jle 0x49e0ff
push ecx
mov ecx, edi
call fcn.0040cde0
mov edx, dword [edi + 4]
mov ecx, ebx
mov dword [esp + 0x90], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, edx
cmovl eax, ecx
test eax, eax
jne 0x49e13f
lea eax, [esp + 0x90]
mov dword [esp + 0x144], edi
mov dword [esp + 0x140], eax
lea eax, [esp + 0x140]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov word [eax + ebx*2], cx
inc ebx
mov ecx, ebx
mov dword [esp + 0x94], ebx
not ecx
xor eax, eax
shr ecx, 0x1f
cmp ebx, dword [edi + 4]
cmovl eax, ecx
test eax, eax
jne 0x49e18b
lea eax, [esp + 0x94]
mov dword [esp + 0x14c], edi
mov dword [esp + 0x148], eax
lea eax, [esp + 0x148]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
xor ecx, ecx
mov word [eax + ebx*2], cx
add esi, 2
jmp 0x49d403
cmp ebx, 0x22
jne 0x49e1d0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x49e1b9
sub esi, dword [esp + 0x9c]
add esi, 2
sar esi, 1
mov dword [eax], esi
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x300]
xor ecx, esp
call fcn.005f4480
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x30c]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005f4480
mov esp, ebp
pop ebp
ret