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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x66b643
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3d4
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
lea ecx, [esp + 0x140]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c0], edi
call fcn.004c50a0
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x3e8], 1
call fcn.004c50a0
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x3e8], 2
call fcn.004c50a0
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x3e8], 3
call fcn.004c50a0
mov dword [esp + 0x10], edi
mov ecx, dword [ebp + 0x14]
or eax, 0xffffffff
mov edx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov eax, dword [edx]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
add ecx, 0xc
mov edi, dword [edx + 4]
mov ebx, dword [ebp + 0x18]
mov dword [esp + 0x1cc], edi
mov byte [esp + 0x3e8], 5
mov edx, dword [edx + 8]
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x1d0], edx
mov edx, dword [ecx]
mov dword [esp + 0x134], edx
mov dword [esp + 0x1c8], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x138], edx
mov edx, dword [ebx]
mov ecx, dword [ecx + 8]
cmp edx, edi
mov dword [esp + 0x13c], ecx
lea ecx, [ebx + 0xc]
jle 0x5c8c1f
mov dword [esp + 0x70], 1
jmp 0x5c8c4b
jge 0x5c8c2b
mov dword [esp + 0x70], 0xffffffff
jmp 0x5c8c4b
mov ebx, dword [ebx + 4]
mov edi, dword [ecx + 4]
cmp ebx, edi
jle 0x5c8c3f
mov dword [esp + 0x70], 1
jmp 0x5c8c4b
xor edx, edx
cmp ebx, edi
setge dl
dec edx
mov dword [esp + 0x70], edx
xor ecx, ecx
mov dword [esi + 0xac], 0xffffffff
mov dword [esp + 0x44], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x19c], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x84], eax
cmp eax, ecx
jg 0x5ca22a
test eax, eax
jl 0x5ca22a
mov ecx, dword [esi + 0x60]
cmp eax, ecx
jge 0x5ca22a
cmp eax, ecx
jge 0x5ca213
mov ecx, dword [esi + 0x5c]
mov ebx, dword [ecx + eax*4]
test ebx, ebx
mov dword [esp + 0x5c], ebx
je 0x5ca213
mov dword [esp + 0x34], eax
mov ecx, dword [ebx + 0x34]
test ecx, ecx
mov dword [esp + 0x40], 0
jle 0x5ca213
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x5ca1f4
mov edx, eax
mov eax, dword [ebx + 0x34]
cmp edx, eax
jge 0x5ca1f4
mov eax, dword [ebx + 0x30]
mov ecx, edx
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [esp + 0x90], eax
je 0x5ca1f4
lea ecx, [esp + 0x60]
mov dword [esp + 0x38], edx
call fcn.004c50a0
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x3e8], 6
call fcn.004c50a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x38]
cmp eax, ecx
mov byte [esp + 0x3e8], 7
jg 0x5c8d51
cmp eax, ecx
jl 0x5ca1cf
mov ecx, dword [esp + 0x1cc]
cmp edx, ecx
jg 0x5c8d51
jl 0x5ca1cf
mov ecx, dword [esp + 0x134]
cmp eax, ecx
jg 0x5ca1cf
jl 0x5c8d6f
cmp edx, dword [esp + 0x138]
jg 0x5ca1cf
mov esi, dword [ebp + 0x18]
mov ecx, 3
xor edx, edx
lea edi, [esi + 0xc]
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9e54
mov edi, dword [ebp + 0x18]
mov ecx, dword [edi]
cmp eax, ecx
jg 0x5c8da6
jl 0x5c9e54
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0x38]
cmp ecx, edx
jg 0x5c8daa
jl 0x5c9e54
jmp 0x5c8daa
mov ecx, dword [esp + 0x38]
mov esi, dword [edi + 0xc]
lea edx, [edi + 0xc]
cmp eax, esi
jg 0x5c9e54
jl 0x5c8dc3
cmp ecx, dword [edx + 4]
jg 0x5c9e54
mov esi, dword [esp + 0x70]
test esi, esi
jne 0x5c929a
mov edi, dword [ebp + 0x18]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x34]
push edi
push eax
lea ecx, [esp + 0x300]
push ebx
push ecx
mov ecx, esi
call fcn.005cc2e0
mov edx, dword [eax]
push edi
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x38]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x1a8]
mov eax, dword [eax + 0xc]
push ebx
push edx
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.005cc5a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 8
call fcn.00499cd0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c8f73
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c8f73
mov eax, esi
mov edx, dword [eax + 0x34]
lea ebx, [eax + 0x34]
lea eax, [esp + 0x368]
mov ecx, ebx
push eax
call dword [edx + 4]
mov ecx, 5
mov edi, eax
lea esi, [esp + 0x44]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5c8f29
mov eax, dword [ebx]
lea ecx, [esp + 0x340]
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x180]
push eax
push ecx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 9
test ecx, ecx
je 0x5c8edc
add ecx, 0xc
mov dword [esp + 0xa4], ecx
jmp 0x5c8ee7
mov dword [esp + 0xa4], 0
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x5c8efb
mov edx, dword [eax + 4]
mov dword [esp + 0xa8], edx
jmp 0x5c8f02
mov dword [esp + 0xa8], esi
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
lea ecx, [esp + 0x17c]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
jmp 0x5c8f2b
xor esi, esi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x5c8f49
lea ecx, [eax + 0xc]
mov dword [esp + 0xac], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xb0], edx
jmp 0x5c8f57
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
lea eax, [esp + 0xac]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x34]
push edi
push ecx
lea edx, [esp + 0x1ac]
push ebx
push edx
mov ecx, esi
call fcn.005ccb40
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0xa
call fcn.00499cd0
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c912b
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c912b
mov ecx, 5
lea edi, [esp + 0x27c]
lea esi, [esp + 0x44]
xor edx, edx
mov dword [esp + 0x27c], 2
mov dword [esp + 0x280], 0x3f800000
mov dword [esp + 0x284], 0x3f800000
mov dword [esp + 0x288], 0x3f800000
mov dword [esp + 0x28c], 0
repe cmpsd dword [esi], dword es:[edi]
je 0x5c90e9
mov ecx, 5
lea esi, [esp + 0x240]
lea edi, [esp + 0x44]
mov dword [esp + 0x240], 2
mov dword [esp + 0x244], 0x3f800000
mov dword [esp + 0x248], 0x3f800000
mov dword [esp + 0x24c], 0x3f800000
mov dword [esp + 0x250], edx
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x188]
push ecx
push edx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0xb
test ecx, ecx
je 0x5c9098
add ecx, 0xc
mov dword [esp + 0xf4], ecx
jmp 0x5c90a3
mov dword [esp + 0xf4], 0
mov eax, dword [eax]
test eax, eax
je 0x5c90b5
mov eax, dword [eax + 4]
mov dword [esp + 0xf8], eax
jmp 0x5c90c0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
lea ecx, [esp + 0x184]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, ecx
je 0x5c9105
lea edx, [eax + 0xc]
mov dword [esp + 0xc4], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xc8], eax
jmp 0x5c9113
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 0x18]
lea eax, [edi + 0xc]
lea edx, [esp + 0x34]
push eax
push edx
lea eax, [esp + 0x190]
push ebx
push eax
mov ecx, esi
call fcn.005cc870
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0xc
call fcn.00499cd0
lea ecx, [esp + 0x188]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9b78
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9b78
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x390]
push eax
mov edx, dword [ecx + 0x34]
lea ebx, [ecx + 0x34]
mov ecx, ebx
call dword [edx + 4]
mov ecx, 5
mov edi, eax
lea esi, [esp + 0x44]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9252
mov eax, dword [ebx]
lea ecx, [esp + 0x318]
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x194]
push eax
push ecx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0xd
test ecx, ecx
je 0x5c9205
add ecx, 0xc
mov dword [esp + 0x114], ecx
jmp 0x5c9210
mov dword [esp + 0x114], 0
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x5c9224
mov edx, dword [eax + 4]
mov dword [esp + 0x118], edx
jmp 0x5c922b
mov dword [esp + 0x118], esi
lea eax, [esp + 0x114]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
lea ecx, [esp + 0x190]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
jmp 0x5c9254
xor esi, esi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x5c9272
lea ecx, [eax + 0xc]
mov dword [esp + 0xd4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd8], edx
jmp 0x5c9280
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x64]
call fcn.004c5210
mov ebx, dword [esp + 0x5c]
jmp 0x5c9b78
mov esi, dword [edi]
cmp eax, esi
jg 0x5c9615
jl 0x5c9615
mov esi, dword [edi + 4]
cmp ecx, esi
jg 0x5c9615
jl 0x5c9615
mov edi, dword [ebp + 0x18]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push edi
push ecx
lea edx, [esp + 0x2e0]
push ebx
push edx
mov ecx, esi
call fcn.005cc170
mov ecx, dword [eax]
push edi
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x19c]
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x38]
push eax
push ebx
push ecx
mov ecx, esi
mov dword [esp + 0x38], edx
call fcn.005cc5a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0xe
call fcn.00499cd0
lea ecx, [esp + 0x198]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c945f
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c945f
mov edx, esi
lea ecx, [esp + 0x3b8]
push ecx
mov eax, dword [edx + 0x34]
lea ebx, [edx + 0x34]
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov edi, eax
lea esi, [esp + 0x44]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9415
mov eax, dword [ebx]
lea ecx, [esp + 0x32c]
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x1b8]
push eax
push ecx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0xf
test ecx, ecx
je 0x5c93c8
add ecx, 0xc
mov dword [esp + 0x104], ecx
jmp 0x5c93d3
mov dword [esp + 0x104], 0
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x5c93e7
mov edx, dword [eax + 4]
mov dword [esp + 0x108], edx
jmp 0x5c93ee
mov dword [esp + 0x108], esi
lea eax, [esp + 0x104]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
jmp 0x5c9417
xor esi, esi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x5c9435
lea ecx, [eax + 0xc]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
jmp 0x5c9443
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], esi
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x34]
push edi
push ecx
lea edx, [esp + 0x1c4]
push ebx
push edx
mov ecx, esi
call fcn.005cc870
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0x10
call fcn.00499cd0
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9b78
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9b78
mov ecx, 5
lea edi, [esp + 0x254]
lea esi, [esp + 0x44]
xor edx, edx
mov dword [esp + 0x254], 2
mov dword [esp + 0x258], 0x3f800000
mov dword [esp + 0x25c], 0x3f800000
mov dword [esp + 0x260], 0x3f800000
mov dword [esp + 0x264], 0
repe cmpsd dword [esi], dword es:[edi]
je 0x5c95d5
mov ecx, 5
lea esi, [esp + 0x2a4]
lea edi, [esp + 0x44]
mov dword [esp + 0x2a4], 2
mov dword [esp + 0x2a8], 0x3f800000
mov dword [esp + 0x2ac], 0x3f800000
mov dword [esp + 0x2b0], 0x3f800000
mov dword [esp + 0x2b4], edx
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x1b4]
push ecx
push edx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0x11
test ecx, ecx
je 0x5c9584
add ecx, 0xc
mov dword [esp + 0x124], ecx
jmp 0x5c958f
mov dword [esp + 0x124], 0
mov eax, dword [eax]
test eax, eax
je 0x5c95a1
mov eax, dword [eax + 4]
mov dword [esp + 0x128], eax
jmp 0x5c95ac
mov dword [esp + 0x128], 0
lea ecx, [esp + 0x124]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, ecx
je 0x5c95fb
lea edx, [eax + 0xc]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x9c], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xa0], eax
jmp 0x5c9b6e
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x9c]
jmp 0x5c9b6e
mov esi, dword [edx]
cmp eax, esi
jg 0x5c9994
jl 0x5c9994
mov edx, dword [edx + 4]
cmp ecx, edx
jg 0x5c9994
jl 0x5c9994
mov edx, dword [ebp + 0x18]
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x2e8]
lea esi, [edx + 0xc]
push esi
push eax
push ebx
push ecx
mov ecx, edi
call fcn.005cbf70
mov edx, dword [eax]
push esi
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x38]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x188]
mov eax, dword [eax + 0xc]
push ebx
push edx
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.005cc5a0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0x12
call fcn.00499cd0
lea ecx, [esp + 0x180]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9826
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9826
mov ecx, 5
lea edi, [esp + 0x204]
lea esi, [esp + 0x44]
xor edx, edx
mov dword [esp + 0x204], 2
mov dword [esp + 0x208], 0x3f800000
mov dword [esp + 0x20c], 0x3f800000
mov dword [esp + 0x210], 0x3f800000
mov dword [esp + 0x214], 0
repe cmpsd dword [esi], dword es:[edi]
je 0x5c97e7
mov ecx, 5
lea esi, [esp + 0x290]
lea edi, [esp + 0x44]
mov dword [esp + 0x290], 2
mov dword [esp + 0x294], 0x3f800000
mov dword [esp + 0x298], 0x3f800000
mov dword [esp + 0x29c], 0x3f800000
mov dword [esp + 0x2a0], edx
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x1ac]
push ecx
push edx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0x13
test ecx, ecx
je 0x5c9796
add ecx, 0xc
mov dword [esp + 0xbc], ecx
jmp 0x5c97a1
mov dword [esp + 0xbc], 0
mov eax, dword [eax]
test eax, eax
je 0x5c97b3
mov eax, dword [eax + 4]
mov dword [esp + 0xc0], eax
jmp 0x5c97be
mov dword [esp + 0xc0], 0
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, ecx
je 0x5c9803
lea edx, [eax + 0xc]
mov dword [esp + 0xcc], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xd0], eax
jmp 0x5c9811
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], ecx
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 0x18]
lea ecx, [esp + 0x18c]
lea eax, [edx + 0xc]
push eax
lea eax, [esp + 0x38]
push eax
push ebx
push ecx
mov ecx, edi
call fcn.005cc870
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0x14
call fcn.00499cd0
lea ecx, [esp + 0x18c]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9b78
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9b78
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x354]
push ecx
mov eax, dword [edx + 0x34]
lea ebx, [edx + 0x34]
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov edi, eax
lea esi, [esp + 0x44]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9950
mov eax, dword [ebx]
lea ecx, [esp + 0x37c]
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x1b0]
push eax
push ecx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0x15
test ecx, ecx
je 0x5c9903
add ecx, 0xc
mov dword [esp + 0xdc], ecx
jmp 0x5c990e
mov dword [esp + 0xdc], 0
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x5c9922
mov edx, dword [eax + 4]
mov dword [esp + 0xe0], edx
jmp 0x5c9929
mov dword [esp + 0xe0], esi
lea eax, [esp + 0xdc]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
jmp 0x5c9952
xor esi, esi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x5c997a
lea ecx, [eax + 0xc]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xf0], edx
lea eax, [esp + 0xec]
jmp 0x5c9287
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], esi
lea eax, [esp + 0xec]
jmp 0x5c9287
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x30c]
push ebx
push edx
mov ecx, esi
call fcn.005cbd50
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x194]
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x34]
push eax
push ebx
push ecx
mov ecx, esi
mov dword [esp + 0x34], edx
call fcn.004ea0e0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0x16
call fcn.00499cd0
lea ecx, [esp + 0x194]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9b78
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9b78
mov ecx, 5
lea edi, [esp + 0x218]
lea esi, [esp + 0x44]
xor edx, edx
mov dword [esp + 0x218], 2
mov dword [esp + 0x21c], 0x3f800000
mov dword [esp + 0x220], 0x3f800000
mov dword [esp + 0x224], 0x3f800000
mov dword [esp + 0x228], 0
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9b3d
mov ecx, 5
lea esi, [esp + 0x22c]
lea edi, [esp + 0x44]
mov dword [esp + 0x22c], 2
mov dword [esp + 0x230], 0x3f800000
mov dword [esp + 0x234], 0x3f800000
mov dword [esp + 0x238], 0x3f800000
mov dword [esp + 0x23c], edx
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x15c]
push ecx
push edx
mov dword [esp + 0x20], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0x17
test ecx, ecx
je 0x5c9aec
add ecx, 0xc
mov dword [esp + 0x94], ecx
jmp 0x5c9af7
mov dword [esp + 0x94], 0
mov eax, dword [eax]
test eax, eax
je 0x5c9b09
mov eax, dword [eax + 4]
mov dword [esp + 0x98], eax
jmp 0x5c9b14
mov dword [esp + 0x98], 0
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
lea ecx, [esp + 0x158]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, ecx
je 0x5c9b59
lea edx, [eax + 0xc]
mov dword [esp + 0xfc], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x100], eax
jmp 0x5c9b67
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], ecx
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0x64]
call fcn.004c5210
fld dword [ebx + 0x10]
fld st(0)
fadd dword [esp + 0x1c]
mov edx, dword [ebx + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1f8], edx
fstp dword [esp + 0x1c]
fadd dword [esp + 0x20]
fld dword [esp + 0x24]
fadd dword [esp + 0x1f8]
fstp dword [esp + 0x24]
fld dword [esp + 0x1f8]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + 0x1c]
fadd dword [eax + 0x90]
fstp dword [esp + 0x1c]
fadd dword [eax + 0x90]
fld dword [esp + 0x24]
fadd dword [eax + 0x94]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [eax + 0x94]
mov eax, dword [ebp + 0x10]
fstp dword [esp + 0x28]
fld dword [esp + 0x1c]
fsub dword [eax]
fstp dword [esp + 0x1c]
fsub dword [eax]
fld dword [esp + 0x24]
fsub dword [eax + 4]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fsub dword [eax + 4]
fstp dword [esp + 0x28]
fsub dword [esp + 0x1c]
fst dword [esp + 0x14]
fcomp dword [0x675254]
fnstsw ax
test ah, 0x41
jne 0x5c9fbc
lea eax, [esp + 0x58]
lea ecx, [esp + 0x268]
push eax
lea edx, [esp + 0x1c8]
push ecx
push edx
mov dword [esp + 0x64], 1
mov dword [esp + 0x274], 2
mov dword [esp + 0x278], 0
mov dword [esp + 0x27c], 0x3e4ccccd
mov dword [esp + 0x280], 0x3ee2e2e3
mov dword [esp + 0x284], 0
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
xor esi, esi
cmp ecx, esi
mov byte [esp + 0x3e8], 0x18
je 0x5c9c9b
add ecx, 0xc
mov dword [esp + 0x10c], ecx
jmp 0x5c9ca2
mov dword [esp + 0x10c], esi
mov eax, dword [eax]
cmp eax, esi
je 0x5c9cb4
mov eax, dword [eax + 4]
mov dword [esp + 0x110], eax
jmp 0x5c9cbb
mov dword [esp + 0x110], esi
lea ecx, [esp + 0x10c]
push ecx
lea ecx, [esp + 0x1d8]
call fcn.004c5210
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov edi, 0x6f334c
mov edx, edi
mov dword [esp + 0x15c], edi
test edx, edx
je 0x5c9d08
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x160], ecx
jmp 0x5c9d0f
mov dword [esp + 0x160], esi
mov edx, 0x6e5e1c
mov eax, edx
mov dword [esp + 0x168], edx
test eax, eax
je 0x5c9d36
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x16c], ecx
jmp 0x5c9d3d
mov dword [esp + 0x16c], esi
mov ecx, edx
mov dword [esp + 0x174], edx
test ecx, ecx
je 0x5c9d5f
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x178], ecx
jmp 0x5c9d66
mov dword [esp + 0x178], esi
mov eax, edx
mov dword [esp + 0x150], edx
test eax, eax
je 0x5c9d88
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x154], ecx
jmp 0x5c9d8f
mov dword [esp + 0x154], esi
fld dword [esp + 0x24]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x5c9da8
fld dword [esp + 0x24]
fsub dword [esp + 0x28]
jmp 0x5c9db0
fld dword [esp + 0x28]
fsub dword [esp + 0x24]
fadd dword [0x6b2e7c]
lea ecx, [esp + 0x15c]
lea edx, [esp + 0x168]
push ecx
mov ecx, dword [ebp + 0x20]
sub esp, 8
lea eax, [esp + 0x180]
fstp qword [esp]
fld dword [esp + 0x20]
push edx
lea edx, [esp + 0x160]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [ebp + 0xc]
sub esp, 8
fld dword [eax + 4]
fadd dword [ecx]
lea ecx, [esp + 0x1f8]
fsub dword [esp + 0x4c]
fsub dword [0x6b2e80]
fstp qword [esp]
fld dword [esp + 0x40]
fadd dword [eax]
mov eax, dword [ebp + 0x1c]
push edx
sub esp, 8
fadd dword [eax]
fstp qword [esp]
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
mov ecx, eax
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
mov ecx, eax
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
mov ecx, eax
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
jmp 0x5c9fbc
lea ecx, [esp + 0x34]
lea edx, [esp + 0x1b8]
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
push edx
call fcn.004ea0e0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3ec], 0x19
call fcn.00499cd0
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5c9fbc
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x5c9fbc
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x34]
lea ebx, [eax + 0x34]
lea eax, [esp + 0x3a4]
mov ecx, ebx
push eax
call dword [edx + 4]
mov ecx, 5
mov edi, eax
lea esi, [esp + 0x44]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5c9f79
mov eax, dword [ebx]
lea ecx, [esp + 0x3cc]
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, 5
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x168]
push eax
push ecx
mov dword [esp + 0x64], 1
call fcn.004e6d90
add esp, 0xc
mov ecx, dword [eax]
mov byte [esp + 0x3e8], 0x1a
test ecx, ecx
je 0x5c9f2c
add ecx, 0xc
mov dword [esp + 0x11c], ecx
jmp 0x5c9f37
mov dword [esp + 0x11c], 0
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x5c9f4b
mov edx, dword [eax + 4]
mov dword [esp + 0x120], edx
jmp 0x5c9f52
mov dword [esp + 0x120], esi
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
lea ecx, [esp + 0x164]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
jmp 0x5c9f7b
xor esi, esi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x5c9f99
lea ecx, [eax + 0xc]
mov dword [esp + 0x12c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x130], edx
jmp 0x5c9fa7
mov dword [esp + 0x12c], esi
mov dword [esp + 0x130], esi
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x60]
push eax
call fcn.004c5210
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x54]
test eax, eax
je 0x5ca063
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x19c]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
lea eax, [esp + 0x188]
push edx
push eax
mov ecx, esi
call fcn.005cb700
mov ecx, dword [eax]
xor edx, edx
cmp ecx, edx
mov byte [esp + 0x3e8], 0x1b
je 0x5ca01b
add ecx, 0xc
mov dword [esp + 0xb4], ecx
jmp 0x5ca022
mov dword [esp + 0xb4], edx
mov eax, dword [eax]
cmp eax, edx
je 0x5ca034
mov ecx, dword [eax + 4]
mov dword [esp + 0xb8], ecx
jmp 0x5ca03b
mov dword [esp + 0xb8], edx
lea edx, [esp + 0xb4]
lea ecx, [esp + 0x2b8]
push edx
call fcn.004c5210
lea ecx, [esp + 0x170]
mov byte [esp + 0x3e8], 7
call fcn.00499a60
lea eax, [esp + 0x1d4]
lea ecx, [esp + 0x2c8]
push eax
call fcn.004c5320
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x5ca1cf
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x18]
fld dword [edx + 4]
fadd dword [ecx]
fld dword [eax + 0x1c]
fadd dword [ebx + 0x18]
mov ecx, dword [ebp + 0x10]
lea edi, [esp + 0x7c]
fadd dword [esi + 0x94]
fsub dword [ecx + 4]
fsubp st(1)
fld dword [eax + 0x18]
fadd dword [ebx + 0x10]
fadd dword [esi + 0x90]
lea esi, [esp + 0x1fc]
fsub dword [ecx]
fadd dword [edx]
mov edx, dword [ebp + 0x1c]
fadd dword [edx]
xor edx, edx
fst dword [esp + 0x58]
fstp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fst dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], ecx
mov ecx, 2
repe cmpsd dword [esi], dword es:[edi]
je 0x5ca1a3
mov edi, 0x6f3330
mov eax, edi
mov dword [esp + 0x74], edi
test eax, eax
je 0x5ca129
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x78], ecx
jmp 0x5ca131
mov dword [esp + 0x78], 0
mov edi, 0x6e5e1c
mov ecx, edi
mov dword [esp + 0x2c], edi
test ecx, ecx
je 0x5ca150
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x5ca158
mov dword [esp + 0x30], 0
fsub dword [esp + 0x80]
lea edx, [esp + 0x74]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1e8]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x64]
fsub dword [esp + 0x88]
push eax
sub esp, 8
fstp qword [esp]
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
mov ecx, eax
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
jmp 0x5ca1a5
fstp st(0)
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
lea eax, [esp + 0x60]
mov dword [esp + 0x7c], ecx
push eax
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x84], edx
call fcn.004c5320
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x3e8], 6
call fcn.004c50c0
lea ecx, [esp + 0x60]
mov byte [esp + 0x3e8], 5
call fcn.004c50c0
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx + 0x34]
inc eax
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x5c8ccc
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x134]
inc eax
cmp eax, ecx
mov dword [esp + 0x84], eax
jle 0x5c8c88
lea ecx, [esp + 0x2c8]
push ecx
lea ecx, [esp + 0x144]
call fcn.004c5320
mov eax, dword [esp + 0x1ec]
test eax, eax
jle 0x5ca38e
mov edi, 0x6e6da8
mov edx, edi
mov dword [esp + 0x2c], edi
test edx, edx
je 0x5ca26c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x5ca274
mov dword [esp + 0x30], 0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x140]
push eax
call fcn.004c5210
fld dword [esi + 0x88]
fst qword [esp + 0x74]
fcomp qword [0x675070]
fnstsw ax
test ah, 1
je 0x5ca2b3
fld dword [esi + 0x88]
fst qword [esp + 0x74]
fcomp qword [0x68bfa8]
fnstsw ax
test ah, 0x41
je 0x5ca2fc
mov edi, 0x6f3328
mov ecx, edi
mov dword [esp + 0x2c], edi
test ecx, ecx
je 0x5ca2d2
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x5ca2da
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x2c]
push edx
push eax
push ecx
lea ecx, [esp + 0x14c]
call fcn.004c52b0
mov ecx, eax
call fcn.004c5210
mov esi, dword [esi + 0x8c]
cmp esi, 0x64
je 0x5ca347
mov edi, 0x6f3320
mov edx, edi
mov dword [esp + 0x2c], edi
test edx, edx
je 0x5ca326
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x5ca32e
mov dword [esp + 0x30], 0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x140]
push eax
push esi
call fcn.004c5270
mov ecx, eax
call fcn.004c5210
mov edi, 0x6e6d5c
mov ecx, edi
mov dword [esp + 0x2c], edi
test ecx, ecx
je 0x5ca366
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x30], ecx
jmp 0x5ca36e
mov dword [esp + 0x30], 0
lea edx, [esp + 0x2c]
lea eax, [esp + 0x1e4]
push edx
push eax
lea ecx, [esp + 0x148]
call fcn.004c5320
mov ecx, eax
call fcn.004c5210
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x144]
call fcn.004c5320
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x140]
push esi
call fcn.004c51e0
mov dword [esp + 0x1c0], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x3e8], 4
call fcn.00499a60
lea ecx, [esp + 0x2b8]
mov byte [esp + 0x3e8], 3
call fcn.004c50c0
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x3e8], 2
call fcn.004c50c0
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x3e8], 1
call fcn.004c50c0
lea ecx, [esp + 0x140]
mov byte [esp + 0x3e8], 0
call fcn.004c50c0
mov ecx, dword [esp + 0x3e0]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x1c