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

Disassembly:
mov ecx, dword [0x93ee7c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x74]
cmp eax, dword [ecx + 8]
jbe 0x4e2d12
sub esp, 0xf4
nop
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
jmp 0x4e1ca0
dec ebp
test ebp, ebp
jle 0x4e1cac
mov esi, dword [ebx + ebp*4 - 4]
test esi, esi
je 0x4e1c9f
mov edx, dword [esp + 0x10c]
cmp edx, ebp
jb 0x4e2d0a
nop
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
jmp 0x4e1ccd
dec edi
test edi, edi
jle 0x4e1cd9
mov eax, dword [esi + edi*4 - 4]
test eax, eax
je 0x4e1ccc
mov eax, esi
mov esi, dword [esp + 0x118]
cmp esi, edi
jb 0x4e2d01
test ebp, ebp
je 0x4e1ef6
cmp edi, 0x64
jl 0x4e1eb2
mov ecx, ebp
sub ebp, edi
test ebp, ebp
jl 0x4e1eab
mov esi, dword [esp + 0x128]
mov ebx, dword [esp + 0x11c]
cmp esi, ebx
jbe 0x4e2cf8
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x9c], edi
mov dword [esp + 0x90], ebp
mov esi, dword [esp + 0x124]
mov eax, dword [esi + ebx*4]
shr edi, 1
mov dword [esp + 0xa8], edi
test eax, eax
je 0x4e1e28
mov edx, dword [eax + 8]
lea ecx, [edi + 1]
cmp edx, ecx
jl 0x4e1d64
jb 0x4e2cf3
mov eax, dword [eax]
jmp 0x4e1e01
test edi, edi
jne 0x4e1db2
lea eax, [0x6dbbc0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0046c5c0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov edx, 1
mov ecx, 1
jmp 0x4e1e01
mov dword [esp + 0x8c], ecx
lea eax, [0x6dbbc0]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [edi + 5]
mov dword [esp + 0x48], edx
mov dword [esp + 8], edx
call fcn.0046c5c0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esi + ebx*4]
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov ecx, dword [0x93f150]
test ecx, ecx
je 0x4e1e24
mov ecx, edi
call fcn.00471840
mov dword [edi], eax
mov edx, dword [ebx]
mov dword [edi + 4], edx
mov edi, ecx
mov dword [ebx], eax
jmp 0x4e1e8a
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004daf50
mov eax, dword [0x93f150]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4e1e55
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x124]
jmp 0x4e1e71
call fcn.00471840
mov dword [edi], ecx
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x124]
mov esi, dword [ebp + ebx*4]
mov dword [edi + 4], esi
mov dword [ebp + ebx*4], ecx
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x10c]
jmp 0x4e1fb8
add esp, 0xf4
ret
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
call fcn.004e1630
add esp, 0xf4
ret
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4e1f17
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
shl eax, 2
mov dword [esp + 4], eax
call fcn.00471ff0
add esp, 0xf4
ret
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x100]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x18], ebx
call fcn.004d9720
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x10c]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x124]
mov eax, ecx
mov ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x120]
mov esi, edi
mov edi, ebp
mov ebp, dword [esp + 0xc4]
cmp ebp, edi
jle 0x4e23d5
sub ebp, edi
mov ebx, dword [esp + 0xc8]
cmp ebx, ebp
jb 0x4e2cea
mov dword [esp + 0xc4], ebp
sub edx, ebp
mov dword [esp + 0x58], edx
neg edx
shl ebp, 2
sar edx, 0x1f
and ebp, edx
mov edx, edi
mov edi, dword [esp + 0x11c]
mov esi, dword [esi + edi*4]
mov edi, dword [esi + 4]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0xc4]
sub ebx, edi
mov dword [esp + 0x54], ebx
mov edi, dword [esp + 0x104]
add ebp, edi
mov dword [esp + 0xd8], ebp
mov edi, dword [esi]
mov dword [esp + 0xe8], edi
mov esi, dword [esi + 8]
mov dword [esp + 0x80], esi
mov ebx, dword [esp + 0x78]
test ebx, ebx
je 0x4e2069
mov dword [esp], edi
shl ebx, 2
mov dword [esp + 4], ebx
call fcn.00471ff0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xe8]
lea eax, [edx + ecx]
mov esi, dword [esp + 0x58]
cmp esi, eax
jb 0x4e2ce1
lea ebx, [edx - 1]
cmp ebx, eax
ja 0x4e2cd8
mov dword [esp + 0x60], ebx
sub esi, edx
inc esi
mov dword [esp + 0xc0], esi
shl ebx, 2
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
add esi, ebp
mov ebp, dword [esp + 0x60]
cmp ecx, ebp
jb 0x4e2cd1
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xf0], esi
mov dword [esp], edi
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x80]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
lea esi, [ecx + 1]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x14], esi
sub ecx, edx
mov esi, dword [esp + 0x118]
sub esi, edx
inc esi
mov dword [esp + 0xb8], esi
inc ecx
mov dword [esp + 0xb4], ecx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
mov ebx, dword [esp + 0x110]
add esi, ebx
mov dword [esp + 0xec], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x11c]
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x124]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x128]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x34], esi
call fcn.004e1c70
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x78]
jmp 0x4e2a50
mov edx, dword [esp + 0x80]
cmp ecx, edx
ja 0x4e2ccc
mov dword [esp + 0x98], ecx
mov ebx, dword [esp + 0x120]
mov ebp, dword [ebx + 8]
mov esi, dword [esp + 0x9c]
lea edi, [esi + esi*2]
cmp ebp, edi
jl 0x4e21c6
jb 0x4e2cc3
mov ebx, dword [ebx]
mov dword [esp + 0x44], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x120]
jmp 0x4e2249
cmp edi, 1
jne 0x4e21f4
mov dword [esp + 0xb0], 0
mov edi, 1
lea ebp, [esp + 0xb0]
mov ebp, 1
mov dword [esp + 0x44], ebp
lea ebp, [esp + 0xb0]
jmp 0x4e2249
mov dword [esp + 0x88], edi
lea eax, [0x6dbbc0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esi + esi*2 + 4]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], ecx
call fcn.0046c5c0
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x88]
mov ebp, ebx
mov ebx, dword [esp + 0x120]
test edi, edi
je 0x4e2287
mov dword [esp + 0x3c], edi
mov dword [esp + 0xd0], ebp
mov dword [esp], ebp
shl edi, 2
mov dword [esp + 4], edi
call fcn.00471ff0
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0xd0]
mov edi, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x118]
mov dword [esp + 0x20], esi
call fcn.004d9830
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xd8]
xor esi, esi
jmp 0x4e2ae5
mov esi, ebx
jmp 0x4e2c2e
mov edi, dword [esp + 0x58]
cmp ebx, edi
ja 0x4e2c67
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
call fcn.004d8780
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4e2c4f
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
cmp ecx, edx
ja 0x4e2c4a
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
call fcn.004e2d60
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4e1f1e
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
ja 0x4e2c43
mov ebx, dword [esp + 0x58]
sub ebx, edx
sub ecx, edx
mov ebp, ebx
neg ebx
shl edx, 2
sar ebx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xd8]
add edx, ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
call fcn.004e2dd0
jmp 0x4e1f1e
mov ebp, dword [esp + 0x11c]
mov esi, dword [esi + ebp*4]
mov ebx, dword [esi + 4]
mov dword [esp + 0x74], ebx
mov ebp, dword [esi + 8]
mov dword [esp + 0x7c], ebp
mov esi, dword [esi]
mov dword [esp + 0xe4], esi
test ebx, ebx
je 0x4e242d
mov dword [esp], esi
shl ebx, 2
mov dword [esp + 4], ebx
call fcn.00471ff0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0xa8]
lea eax, [edi - 1]
mov ebp, dword [esp + 0xc8]
cmp ebp, eax
jb 0x4e2a48
mov dword [esp + 0x5c], eax
sub edx, edi
sub ebp, edi
inc edx
mov dword [esp + 0x50], edx
shl eax, 2
neg edx
sar edx, 0x1f
and edx, eax
mov edi, dword [esp + 0x104]
add edx, edi
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x4e246e
dec ebp
mov edi, dword [esp + 0x104]
test ebp, ebp
jle 0x4e2481
mov edi, dword [edx + ebp*4 - 4]
test edi, edi
je 0x4e2466
mov edi, dword [esp + 0x104]
mov edi, dword [esp + 0x50]
cmp ebp, edi
ja 0x4e2a3f
mov edi, dword [esp + 0x5c]
cmp ecx, edi
jb 0x4e2a38
mov dword [esp + 0xc4], eax
mov dword [esp + 0xd4], edx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x7c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x118]
mov edx, dword [esp + 0xa8]
sub ebp, edx
sub ecx, edx
inc ebp
mov dword [esp + 0xc0], ebp
inc ecx
mov dword [esp + 0xbc], ecx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
mov eax, dword [esp + 0x110]
add ebp, eax
mov dword [esp + 0xf0], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x11c]
inc edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x120]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x34], ecx
call fcn.004e1c70
nop
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x74]
jmp 0x4e2562
dec ecx
test ecx, ecx
jle 0x4e256e
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4e2561
mov edx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x4e2a33
mov dword [esp + 0x94], ecx
mov ebx, dword [esp + 0x120]
mov ebp, dword [ebx + 8]
mov esi, dword [esp + 0x9c]
lea edi, [esi + esi*2]
cmp ebp, edi
jl 0x4e25a3
jb 0x4e2a2a
mov ebx, dword [ebx]
jmp 0x4e260c
cmp edi, 1
jne 0x4e25c6
mov dword [esp + 0xac], 0
mov edi, 1
lea ebx, [esp + 0xac]
mov ebp, 1
jmp 0x4e260c
mov dword [esp + 0x84], edi
lea eax, [0x6dbbc0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esi + esi*2 + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.0046c5c0
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0x40]
test edi, edi
je 0x4e264f
mov dword [esp + 0x38], edi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x40], ebp
mov dword [esp], ebx
shl edi, 2
mov dword [esp + 4], edi
call fcn.00471ff0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x118]
mov dword [esp + 0x20], esi
call fcn.004d9830
mov eax, dword [esp + 0x24]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0xc8]
xor esi, esi
jmp 0x4e26dd
mov edi, dword [esp + 0xa0]
lea esi, [edi + 1]
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
cmp esi, 2
jge 0x4e2858
mov edi, ebp
jmp 0x4e2a07
mov edi, dword [esp + 0xc8]
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4e2a21
mov dword [esp + 0xa0], esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
call fcn.004d8780
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4e26b6
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.004e2dd0
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
jb 0x4e2a1c
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x20], ebp
call fcn.004e2d60
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
jle 0x4e280b
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
sub eax, ebx
inc edx
mov edi, edx
neg edx
sar edx, 0x1f
mov ebx, dword [esp + 0xc4]
and edx, ebx
mov ebx, dword [esp + 0xdc]
add edx, ebx
mov dword [esp], edx
inc eax
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
call fcn.004e2dd0
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0
call fcn.004d9720
jmp 0x4e26b6
mov esi, ebp
jmp 0x4e285d
dec ebp
test ebp, ebp
jle 0x4e2869
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4e285c
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4e29f6
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
call fcn.004d8780
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4e29de
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x64]
cmp edx, ecx
jb 0x4e29d9
mov eax, dword [esp + 0x104]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x20], ebx
call fcn.004e2d60
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4e294c
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x64]
cmp ecx, edx
jb 0x4e29d2
mov ebx, dword [esp + 0x10c]
sub ebx, edx
sub ecx, edx
mov ebp, ebx
neg ebx
shl edx, 2
sar ebx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x104]
add edx, ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
call fcn.004e2dd0
mov eax, dword [esp + 0x1c]
test eax, eax
ja 0x4e29ba
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
jmp 0x4e2961
dec ecx
test ecx, ecx
jle 0x4e296d
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4e2960
mov edx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x4e29b5
mov ebx, dword [esp + 0xf8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
call fcn.004d9720
add esp, 0xf4
ret
call fcn.004718f0
lea eax, [0x6db180]
mov dword [esp], eax
lea eax, [0x78a5f8]
mov dword [esp + 4], eax
call fcn.0046a9e0
mov eax, edx
call fcn.00471910
call fcn.004718f0
lea eax, [0x6db180]
mov dword [esp], eax
lea eax, [0x78a5f8]
mov dword [esp + 4], eax
call fcn.0046a9e0
mov ecx, ebp
mov edx, edi
call fcn.004718f0
dec ebp
mov edi, dword [esp + 0xc8]
test ebp, ebp
jle 0x4e26f4
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4e29ff
jmp 0x4e26ed
call fcn.004718f0
mov ecx, ebp
mov edx, edi
call fcn.004718f0
mov ecx, edi
mov edx, ebp
call fcn.004718f0
call fcn.004718f0
mov eax, edi
call fcn.00471910
mov ecx, ebp
mov edx, edi
call fcn.004718f0
mov ecx, ebp
call fcn.00471910
dec ecx
test ecx, ecx
jle 0x4e217e
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4e2a4f
jmp 0x4e217e
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa8]
sub edx, ecx
inc edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
call fcn.004d9720
mov eax, dword [esp + 0xa4]
lea esi, [eax + 1]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xd8]
cmp esi, 2
jge 0x4e22f2
mov dword [esp + 0xa4], esi
mov edi, ebx
jmp 0x4e2c78
mov esi, dword [esp + 0xa4]
mov esi, dword [esp + 0x58]
cmp ebx, esi
ja 0x4e2cba
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
call fcn.004d8780
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4e2c8d
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.004e2dd0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jb 0x4e2cb5
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x20], ebp
call fcn.004e2d60
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x4e2c1f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
sub eax, ebx
inc edx
mov edi, edx
neg edx
sar edx, 0x1f
mov ebp, dword [esp + 0xbc]
and edx, ebp
mov ebp, dword [esp + 0xe0]
add edx, ebp
mov dword [esp], edx
inc eax
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
call fcn.004e2dd0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jae 0x4e2a65
jmp 0x4e2cac
dec ebx
test ebx, ebx
jle 0x4e22f9
mov edi, dword [ebp + ebx*4 - 4]
test edi, edi
je 0x4e2c2d
jmp 0x4e22f9
mov eax, edx
call fcn.00471910
call fcn.004718f0
lea eax, [0x6db180]
mov dword [esp], eax
lea eax, [0x78a5f8]
mov dword [esp + 4], eax
call fcn.0046a9e0
mov ecx, ebx
mov edx, edi
call fcn.004718f0
dec ebx
mov esi, dword [esp + 0xa4]
test ebx, ebx
jle 0x4e2b03
mov esi, dword [ebp + ebx*4 - 4]
test esi, esi
je 0x4e2c70
jmp 0x4e2afc
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0xd8]
jmp 0x4e22f2
mov eax, ecx
mov ecx, edx
call fcn.00471910
call fcn.004718f0
mov ecx, ebx
mov edx, esi
call fcn.004718f0
mov ecx, edi
mov edx, ebp
call fcn.004718f0
call fcn.004718f0
mov eax, ebp
call fcn.00471910
mov ecx, eax
mov eax, ebx
call fcn.00471910
mov ecx, eax
mov edx, esi
call fcn.004718f0
mov eax, ebp
mov ecx, ebx
call fcn.00471910
call fcn.004718f0
mov eax, ebx
mov ecx, esi
call fcn.004718b0
mov ecx, edi
mov edx, esi
call fcn.004718f0
mov ecx, ebp
call fcn.004718f0
nop
call fcn.00470430
jmp fcn.004e1c70