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

Disassembly:
mov ecx, dword [0x6816e0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x74]
cmp eax, dword [ecx + 8]
jbe 0x4c3357
sub esp, 0xf4
nop
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
jmp 0x4c22e0
dec ebp
test ebp, ebp
jle 0x4c22ec
mov esi, dword [ebx + ebp*4 - 4]
test esi, esi
je 0x4c22df
mov edx, dword [esp + 0x10c]
cmp edx, ebp
jb 0x4c334f
nop
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
jmp 0x4c230d
dec edi
test edi, edi
jle 0x4c2319
mov eax, dword [esi + edi*4 - 4]
test eax, eax
je 0x4c230c
mov eax, esi
mov esi, dword [esp + 0x118]
cmp esi, edi
jb 0x4c3346
test ebp, ebp
je 0x4c2536
cmp edi, 0x64
jl 0x4c24f2
mov ecx, ebp
sub ebp, edi
test ebp, ebp
jl 0x4c24eb
mov esi, dword [esp + 0x128]
mov ebx, dword [esp + 0x11c]
cmp esi, ebx
jbe 0x4c333d
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 0x4c2468
mov edx, dword [eax + 8]
lea ecx, [edi + 1]
cmp edx, ecx
jl 0x4c23a4
jb 0x4c3338
mov eax, dword [eax]
jmp 0x4c2441
test edi, edi
jne 0x4c23f2
lea eax, [0x544e00]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0044eef0
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 0x4c2441
mov dword [esp + 0x8c], ecx
lea eax, [0x544e00]
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.0044eef0
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 [0x681788]
test ecx, ecx
je 0x4c2464
mov ecx, edi
call fcn.00469390
mov dword [edi], eax
mov edx, dword [ebx]
mov dword [edi + 4], edx
mov edi, ecx
mov dword [ebx], eax
jmp 0x4c24ca
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004bb270
mov eax, dword [0x681788]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4c2495
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x124]
jmp 0x4c24b1
call fcn.00469390
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 0x4c25f9
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.004c1c70
add esp, 0xf4
ret
nop
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4c2558
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
shl eax, 2
mov dword [esp + 4], eax
call fcn.00469af0
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.004b9a40
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 0x4c2a18
sub ebp, edi
mov ebx, dword [esp + 0xc8]
cmp ebx, ebp
jb 0x4c332f
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
nop
mov ebx, dword [esp + 0x78]
test ebx, ebx
je 0x4c26ab
mov dword [esp], edi
shl ebx, 2
mov dword [esp + 4], ebx
call fcn.00469af0
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 0x4c3326
lea ebx, [edx - 1]
cmp ebx, eax
ja 0x4c331d
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 0x4c3316
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.004c22b0
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x78]
jmp 0x4c3095
mov edx, dword [esp + 0x80]
cmp ecx, edx
ja 0x4c3311
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 0x4c2808
jb 0x4c3308
mov ebx, dword [ebx]
mov dword [esp + 0x44], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x120]
jmp 0x4c288b
cmp edi, 1
jne 0x4c2836
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 0x4c288b
mov dword [esp + 0x88], edi
lea eax, [0x544e00]
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.0044eef0
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]
nop
test edi, edi
je 0x4c28ca
mov dword [esp + 0x3c], edi
mov dword [esp + 0xd0], ebp
mov dword [esp], ebp
shl edi, 2
mov dword [esp + 4], edi
call fcn.00469af0
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.004b9b50
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 0x4c312a
mov esi, ebx
jmp 0x4c3273
mov edi, dword [esp + 0x58]
cmp ebx, edi
ja 0x4c32ac
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.004b8aa0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4c3294
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
cmp ecx, edx
ja 0x4c328f
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.004c33b0
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4c255f
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
ja 0x4c3288
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.004c3420
jmp 0x4c255f
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
nop
test ebx, ebx
je 0x4c2a71
mov dword [esp], esi
shl ebx, 2
mov dword [esp + 4], ebx
call fcn.00469af0
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 0x4c308d
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 0x4c2ab2
dec ebp
mov edi, dword [esp + 0x104]
test ebp, ebp
jle 0x4c2ac5
mov edi, dword [edx + ebp*4 - 4]
test edi, edi
je 0x4c2aaa
mov edi, dword [esp + 0x104]
mov edi, dword [esp + 0x50]
cmp ebp, edi
ja 0x4c3084
mov edi, dword [esp + 0x5c]
cmp ecx, edi
jb 0x4c307d
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.004c22b0
nop
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x74]
jmp 0x4c2ba6
dec ecx
test ecx, ecx
jle 0x4c2bb2
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4c2ba5
mov edx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x4c3078
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 0x4c2be7
jb 0x4c306f
mov ebx, dword [ebx]
jmp 0x4c2c50
cmp edi, 1
jne 0x4c2c0a
mov dword [esp + 0xac], 0
mov edi, 1
lea ebx, [esp + 0xac]
mov ebp, 1
jmp 0x4c2c50
mov dword [esp + 0x84], edi
lea eax, [0x544e00]
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.0044eef0
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]
nop
test edi, edi
je 0x4c2c94
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.00469af0
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.004b9b50
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 0x4c2d22
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 0x4c2e9d
mov edi, ebp
jmp 0x4c304c
mov edi, dword [esp + 0xc8]
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4c3066
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.004b8aa0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4c2cfb
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.004c3420
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
jb 0x4c3061
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.004c33b0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
jle 0x4c2e50
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.004c3420
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.004b9a40
jmp 0x4c2cfb
mov esi, ebp
jmp 0x4c2ea2
dec ebp
test ebp, ebp
jle 0x4c2eae
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4c2ea1
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4c303b
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.004b8aa0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4c3023
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x64]
cmp edx, ecx
jb 0x4c301e
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.004c33b0
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4c2f91
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x64]
cmp ecx, edx
jb 0x4c3017
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.004c3420
mov eax, dword [esp + 0x1c]
test eax, eax
ja 0x4c2fff
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
jmp 0x4c2fa6
dec ecx
test ecx, ecx
jle 0x4c2fb2
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4c2fa5
mov edx, dword [esp + 0x7c]
cmp ecx, edx
ja 0x4c2ffa
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.004b9a40
add esp, 0xf4
ret
call fcn.00469440
lea eax, [0x544540]
mov dword [esp], eax
lea eax, [0x590738]
mov dword [esp + 4], eax
call fcn.00437f80
mov eax, edx
call fcn.00469460
call fcn.00469440
lea eax, [0x544540]
mov dword [esp], eax
lea eax, [0x590738]
mov dword [esp + 4], eax
call fcn.00437f80
mov ecx, ebp
mov edx, edi
call fcn.00469440
dec ebp
mov edi, dword [esp + 0xc8]
test ebp, ebp
jle 0x4c2d39
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4c3044
jmp 0x4c2d32
call fcn.00469440
mov ecx, ebp
mov edx, edi
call fcn.00469440
mov ecx, edi
mov edx, ebp
call fcn.00469440
call fcn.00469440
mov eax, edi
call fcn.00469460
mov ecx, ebp
mov edx, edi
call fcn.00469440
mov ecx, ebp
call fcn.00469460
dec ecx
test ecx, ecx
jle 0x4c27c0
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4c3094
jmp 0x4c27c0
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.004b9a40
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 0x4c2935
mov dword [esp + 0xa4], esi
mov edi, ebx
jmp 0x4c32bd
mov esi, dword [esp + 0xa4]
mov esi, dword [esp + 0x58]
cmp ebx, esi
ja 0x4c32ff
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.004b8aa0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4c32d2
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.004c3420
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jb 0x4c32fa
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.004c33b0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
jle 0x4c3264
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.004c3420
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jae 0x4c30aa
jmp 0x4c32f1
dec ebx
test ebx, ebx
jle 0x4c293c
mov edi, dword [ebp + ebx*4 - 4]
test edi, edi
je 0x4c3272
jmp 0x4c293c
mov eax, edx
call fcn.00469460
call fcn.00469440
lea eax, [0x544540]
mov dword [esp], eax
lea eax, [0x590738]
mov dword [esp + 4], eax
call fcn.00437f80
mov ecx, ebx
mov edx, edi
call fcn.00469440
dec ebx
mov esi, dword [esp + 0xa4]
test ebx, ebx
jle 0x4c3148
mov esi, dword [ebp + ebx*4 - 4]
test esi, esi
je 0x4c32b5
jmp 0x4c3141
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 0x4c2935
mov eax, ecx
mov ecx, edx
call fcn.00469460
call fcn.00469440
mov ecx, ebx
mov edx, esi
call fcn.00469440
mov ecx, edi
mov edx, ebp
call fcn.00469440
call fcn.00469440
mov eax, ebp
call fcn.00469460
mov ecx, eax
mov eax, ebx
call fcn.00469460
mov ecx, eax
mov edx, esi
call fcn.00469440
mov eax, ebp
mov ecx, ebx
call fcn.00469460
call fcn.00469440
mov eax, ebx
mov ecx, esi
call fcn.00469400
mov ecx, edi
mov edx, esi
call fcn.00469440
mov ecx, ebp
call fcn.00469440
nop
call fcn.00467f80
jmp fcn.004c22b0