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

Disassembly:
push 0xffffffffffffffff
push 0x77ccc1
mov eax, dword fs:[0]
push eax
sub esp, 0x520
mov eax, dword [0x84dea4]
xor eax, esp
mov dword [esp + 0x51c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x84dea4]
xor eax, esp
push eax
lea eax, [esp + 0x534]
mov dword fs:[0], eax
mov edi, dword [esp + 0x544]
mov ebx, ecx
mov ecx, 5
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x28], edi
call fcn.004bb690
test eax, eax
je 0x57d13f
mov eax, dword [edi + 0x58]
xor esi, esi
cmp eax, esi
je 0x57d13f
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
lea eax, [esp + 0x60]
mov ecx, eax
not ecx
mov dword [esp + 0x53c], esi
mov dword [esp + 0x78], 8
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x4c]
push edx
push edi
mov ecx, ebx
mov byte [esp + 0x550], 1
mov byte [esp + 0x6c], 0
mov dword [esp + 0x7c], 0xffffffff
call fcn.00526e00
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
add ecx, 1
mov dword [esp + 0x48], ecx
mov ecx, dword [ebx + 0x988]
add edx, 0xffffffff
add eax, 0xffffffff
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
mov eax, dword [edi + 0x58]
cmp eax, esi
mov byte [esp + 0x53c], 2
mov dword [esp + 0x30], esi
jbe 0x57ca70
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x5c]
add esi, dword [esp + 0x24]
mov eax, esi
call fcn.0057bf90
test eax, eax
jne 0x57c77d
push esi
lea ecx, [esp + 0x70]
call fcn.0057adf0
mov ecx, eax
call fcn.0059dde0
jmp 0x57ca53
mov eax, dword [esi + 4]
cmp eax, dword [esp + 0x4c]
mov ecx, dword [esi]
jge 0x57c78c
mov dword [esp + 0x4c], eax
cmp ecx, dword [esp + 0x48]
jge 0x57c796
mov dword [esp + 0x48], ecx
cmp eax, dword [esp + 0x54]
jle 0x57c7a0
mov dword [esp + 0x54], eax
cmp ecx, dword [esp + 0x50]
jle 0x57c7aa
mov dword [esp + 0x50], ecx
push 0
lea edx, [esp + 0x30]
push edx
push ecx
mov ecx, dword [esp + 0x88]
push eax
call fcn.00577ca0
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x44], eax
jl 0x57c7cd
mov dword [esp + 0x44], eax
mov esi, dword [esi + 0x1c]
test esi, esi
jle 0x57ca53
mov ebx, esi
mov dword [esp + 0x20], esi
mov edi, edi
mov ecx, dword [esp + 0x88]
mov ebp, dword [ebx + 0x10]
mov edx, dword [esp + 0x8c]
xor edi, edi
xor esi, esi
cmp ecx, edi
mov dword [esp + 0x14], ebp
jbe 0x57c81c
mov edi, dword [ebp]
lea eax, [edx + 8]
mov ebp, dword [eax]
cmp dword [ebp], edi
je 0x57c881
add esi, 1
add eax, 0x94
cmp esi, ecx
jb 0x57c803
mov ebp, dword [esp + 0x14]
xor edi, edi
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x84]
jbe 0x57c854
cmp eax, 8
jbe 0x57c839
mov ecx, eax
and ecx, 7
je 0x57c839
sub eax, ecx
add eax, 8
push eax
lea ecx, [esp + 0x88]
call fcn.00579ea0
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov eax, ecx
imul eax, eax, 0x94
add eax, edx
add ecx, 1
cmp eax, edi
mov dword [esp + 0x88], ecx
je 0x57c898
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], edi
mov dword [eax + 0x30], edi
mov esi, eax
jmp 0x57c89a
mov ebp, dword [esp + 0x14]
imul esi, esi, 0x94
mov eax, dword [esi + edx + 8]
add esi, edx
xor edi, edi
jmp 0x57c917
xor esi, esi
mov ecx, dword [esi + 4]
add ecx, 1
cmp ecx, dword [esi]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
jbe 0x57c8f7
cmp ecx, 1
jbe 0x57c8ef
cmp ecx, 0x15
mov edi, ecx
jae 0x57c8d8
lea eax, [ecx - 1]
and eax, ecx
je 0x57c8cc
mov edi, eax
lea eax, [edi - 1]
and eax, edi
jne 0x57c8c3
cmp edi, 1
jae 0x57c8dd
mov edi, 1
jmp 0x57c8dd
mov edi, 0x15
xor edx, edx
mov eax, ecx
div edi
test edx, edx
je 0x57c8ed
sub edi, edx
add edi, ecx
mov ecx, edi
xor edi, edi
push ecx
mov ecx, esi
call fcn.005778e0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
lea eax, [ecx + ecx*2]
add ecx, 1
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
lea eax, [edx + eax*4]
mov dword [eax], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov ecx, dword [ebx + 0x30]
add dword [esi + 0x18], ecx
mov ecx, dword [ebx + 0x40]
add dword [esi + 0x1c], ecx
mov ecx, dword [ebx + 0x50]
add dword [esi + 0x20], ecx
mov ecx, dword [ebp + 0xc]
add dword [eax + 8], ecx
mov eax, dword [ebx + 0x60]
add dword [esi + 0x24], eax
cmp dword [ebx + 0x70], edi
mov dword [esp + 0x14], edi
jbe 0x57ca44
mov dword [esp + 0x1c], 0
lea ebx, [ebx]
mov edi, dword [ebx + 0x74]
add edi, dword [esp + 0x1c]
xor eax, eax
cmp dword [esi + 0x2c], eax
mov dword [esp + 0x18], edi
jbe 0x57c98b
mov edx, dword [esi + 0x30]
mov ebp, dword [edi]
mov ecx, edx
lea esp, [esp]
cmp dword [ecx], ebp
je 0x57c981
add eax, 1
add ecx, 0xc
cmp eax, dword [esi + 0x2c]
jb 0x57c970
jmp 0x57c98b
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
test eax, eax
jne 0x57ca08
mov ecx, dword [esi + 0x2c]
lea ebp, [esi + 0x28]
add ecx, 1
cmp ecx, dword [ebp]
jbe 0x57c9ea
cmp ecx, 8
jbe 0x57c9e2
cmp ecx, 0x15
mov edi, ecx
jae 0x57c9c5
lea eax, [ecx - 1]
and eax, ecx
je 0x57c9b9
lea esp, [esp]
mov edi, eax
lea eax, [edi - 1]
and eax, edi
jne 0x57c9b0
cmp edi, 1
jae 0x57c9ca
mov edi, 1
jmp 0x57c9ca
mov edi, 0x15
xor edx, edx
mov eax, ecx
div edi
test edx, edx
je 0x57c9da
sub edi, edx
add edi, ecx
mov ecx, edi
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
push ecx
mov ecx, ebp
call fcn.005779b0
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 8]
lea edx, [ecx + ecx*2]
add ecx, 1
mov dword [ebp + 4], ecx
mov ecx, dword [edi]
lea eax, [eax + edx*4]
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
cmp dword [eax], 4
jne 0x57ca25
mov ecx, dword [eax + 8]
test ecx, ecx
jbe 0x57ca25
add ecx, 2
test cl, 1
mov dword [eax + 8], ecx
je 0x57ca25
add ecx, 1
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0xc]
add dword [eax + 8], ecx
mov eax, dword [esp + 0x14]
add dword [esp + 0x1c], 0x18
add eax, 1
cmp eax, dword [ebx + 0x70]
mov dword [esp + 0x14], eax
jb 0x57c950
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [esp + 0x20], ebx
jg 0x57c7e0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
add dword [esp + 0x24], 0x24
add eax, 1
cmp eax, dword [edx + 0x58]
mov dword [esp + 0x30], eax
jb 0x57c751
cmp dword [esp + 0x88], 0
mov dword [esp + 0x20], 0
jbe 0x57cc52
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x1c]
push 0xfffffffffffffffe
push str.._AUCliffGeoset__
lea edi, [ecx + eax]
xor ebx, ebx
push ebx
mov ecx, 0x861f28
call fcn.004296b0
mov esi, eax
cmp esi, ebx
je 0x57caff
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
jmp 0x57cb03
lea eax, [esp + 0x60]
mov ebp, dword [eax]
cmp ebp, ebx
je 0x57cb2a
mov edx, dword [eax + 4]
cmp edx, ebx
jg 0x57cb14
not edx
jmp 0x57cb1b
mov ecx, eax
sub ecx, dword [ebp + 4]
add edx, ecx
mov dword [edx], ebp
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [ecx + 4], esi
mov dword [esp + 0x60], eax
mov edx, dword [edi + 0x18]
mov eax, dword [esi + 0x30]
lea ecx, [esi + 0x2c]
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cb52
push eax
call fcn.0046d040
mov edx, dword [edi + 0x1c]
mov eax, dword [esi + 0x40]
lea ecx, [esi + 0x3c]
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cb67
push eax
call fcn.0046d040
mov edx, dword [edi + 0x20]
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x4c]
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cb7c
push eax
call fcn.0046d040
mov edx, dword [edi + 0x24]
mov eax, dword [esi + 0x60]
lea ecx, [esi + 0x5c]
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cb91
push eax
call fcn.0046d190
push 1
lea ecx, [esi + 8]
call fcn.0057bfd0
mov eax, dword [edi + 8]
mov edx, dword [eax]
mov ecx, dword [esi + 0x10]
mov dword [ecx], edx
mov eax, dword [edi + 8]
mov edx, dword [eax + 4]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], edx
mov eax, dword [edi + 8]
mov ecx, dword [esi + 0x10]
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
add ecx, 8
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cbcc
push eax
call fcn.0046d190
mov eax, dword [edi + 0x2c]
push eax
lea ecx, [esi + 0x6c]
call fcn.0057c0a0
cmp dword [edi + 0x2c], ebx
mov dword [esp + 0x14], ebx
jbe 0x57cc32
xor ebp, ebp
xor ebx, ebx
mov ecx, dword [edi + 0x30]
mov eax, dword [ebx + ecx]
mov edx, dword [esi + 0x74]
mov dword [edx + ebp], eax
mov ecx, dword [edi + 0x30]
mov eax, dword [ebx + ecx + 4]
mov edx, dword [esi + 0x74]
mov dword [edx + ebp + 4], eax
mov ecx, dword [edi + 0x30]
mov eax, dword [esi + 0x74]
mov edx, dword [ebx + ecx + 8]
lea ecx, [eax + ebp + 8]
mov eax, dword [ecx + 4]
add eax, edx
cmp eax, dword [ecx]
jbe 0x57cc1c
push eax
call fcn.0040de50
mov eax, dword [esp + 0x14]
add eax, 1
add ebx, 0xc
add ebp, 0x18
cmp eax, dword [edi + 0x2c]
mov dword [esp + 0x14], eax
jb 0x57cbe5
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], 0x94
add eax, 1
cmp eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
jb 0x57ca8e
lea ecx, [esp + 0x84]
mov byte [esp + 0x53c], 1
call fcn.00579cf0
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x58], 0
mov dword [esp + 0x2c], 0
jbe 0x57d087
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x5c]
add eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
call fcn.0057bf90
test eax, eax
je 0x57d06a
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x1c]
test ebx, ebx
jle 0x57d06a
nop
mov eax, dword [esp + 0x64]
mov esi, dword [ebx + 0x10]
xor ebp, ebp
xor edi, edi
test eax, eax
jle 0x57ccd6
nop
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx]
cmp edx, dword [esi]
je 0x57ccd2
mov eax, dword [eax + 4]
test eax, eax
jg 0x57ccc0
jmp 0x57ccd6
mov ebp, eax
mov edi, ecx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x34]
push eax
push ecx
lea ecx, [ebp + 0x2c]
call fcn.00578ae0
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
push eax
push ecx
lea ecx, [ebp + 0x3c]
call fcn.00578ae0
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
push eax
push ecx
lea ecx, [ebp + 0x4c]
call fcn.00578ae0
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0xc]
push eax
push esi
lea ecx, [edi + 8]
call fcn.00579570
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x60]
push eax
push ecx
lea ecx, [ebp + 0x5c]
call fcn.00579570
mov eax, dword [esp + 0x40]
mov edi, dword [eax]
mov esi, dword [eax + 4]
push 0
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x84]
push edi
push esi
call fcn.00577ca0
sub esi, dword [esp + 0x4c]
sub edi, dword [esp + 0x48]
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [ebp + 0x30]
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
fld qword [0x7a45f8]
mov dword [esp + 0x18], edi
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x20]
fimul dword [esp + 0x18]
mov dword [esp + 0x18], edx
fstp dword [esp + 0x34]
fild dword [esp + 0x18]
fmul dword [0x83da28]
fstp dword [esp + 0x18]
jae 0x57cdee
fld dword [esp + 0x20]
mov eax, ecx
fld dword [esp + 0x34]
lea eax, [eax + eax*2]
fld dword [esp + 0x18]
add eax, eax
add eax, eax
mov edx, dword [ebp + 0x34]
fld dword [edx + eax]
add edx, eax
fsub st(2)
add ecx, 1
fstp dword [edx]
mov edx, dword [ebp + 0x34]
fld dword [eax + edx + 4]
lea edx, [eax + edx + 4]
fadd st(3)
fstp dword [edx]
mov edx, dword [ebp + 0x34]
fld dword [eax + edx + 8]
lea edx, [eax + edx + 8]
fadd st(1)
add eax, 0xc
fstp dword [edx]
cmp ecx, dword [ebp + 0x30]
jb 0x57cdb3
fstp st(2)
fstp st(0)
fstp st(0)
xor eax, eax
cmp dword [ebx + 0x70], eax
mov dword [esp + 0x18], eax
jbe 0x57d05f
mov dword [esp + 0x20], eax
mov esi, dword [ebx + 0x74]
add esi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x70]
xor edi, edi
xor eax, eax
test ecx, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], edi
jbe 0x57ce3d
mov edx, dword [ebp + 0x74]
mov esi, dword [esi]
cmp dword [edx], esi
je 0x57ce30
add eax, 1
add edx, 0x18
cmp eax, ecx
jb 0x57ce20
jmp 0x57ce3d
mov edi, dword [ebp + 0x74]
lea eax, [eax + eax*2]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
cmp dword [edi], 4
mov eax, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
jne 0x57d00e
test eax, eax
jle 0x57d00e
mov ecx, dword [edi + 0x10]
mov edx, eax
movzx eax, word [ecx + edx*2 - 2]
mov ecx, dword [edi + 0xc]
lea esi, [edi + 8]
add ecx, 1
cmp ecx, dword [esi]
mov dword [esp + 0x38], eax
jbe 0x57cecd
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x57cea9
cmp ecx, 0x80
mov edi, ecx
jae 0x57ce9d
lea eax, [ecx - 1]
and eax, ecx
je 0x57ce91
mov edi, eax
lea eax, [edi - 1]
and eax, edi
jne 0x57ce88
cmp edi, 1
jae 0x57cea9
mov edi, 1
jmp 0x57cea9
mov dword [esi + 0xc], 0x80
mov edi, 0x80
xor edx, edx
mov eax, ecx
div edi
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x57cebd
sub edi, edx
add edi, ecx
jmp 0x57cec1
mov edi, dword [esp + 0x3c]
push edi
mov ecx, esi
call fcn.0040de50
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dx, word [esp + 0x38]
add dword [esp + 0x1c], 1
lea ecx, [ecx + eax*2]
add eax, 1
mov dword [esi + 4], eax
mov eax, dword [esp + 0x34]
mov word [ecx], dx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 4]
add ecx, 1
cmp ecx, dword [esi]
jbe 0x57cf5b
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x57cf37
cmp ecx, 0x80
mov edi, ecx
jae 0x57cf2b
lea eax, [ecx - 1]
and eax, ecx
je 0x57cf1f
mov edi, eax
lea eax, [edi - 1]
and eax, edi
jne 0x57cf16
cmp edi, 1
jae 0x57cf37
mov edi, 1
jmp 0x57cf37
mov dword [esi + 0xc], 0x80
mov edi, 0x80
xor edx, edx
mov eax, ecx
div edi
mov dword [esp + 0x38], ecx
test edx, edx
je 0x57cf4b
sub edi, edx
add edi, ecx
jmp 0x57cf4f
mov edi, dword [esp + 0x38]
push edi
mov ecx, esi
call fcn.0040de50
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
lea ecx, [edx + eax*2]
add eax, 1
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov dx, word [eax]
mov word [ecx], dx
test byte [edi + 0xc], 1
je 0x57d00e
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 4]
add ecx, 1
cmp ecx, dword [esi]
jbe 0x57cff5
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x57cfd1
cmp ecx, 0x80
mov edi, ecx
jae 0x57cfc5
lea eax, [ecx - 1]
and eax, ecx
je 0x57cfb9
jmp 0x57cfb0
mov edi, eax
lea eax, [edi - 1]
and eax, edi
jne 0x57cfb0
cmp edi, 1
jae 0x57cfd1
mov edi, 1
jmp 0x57cfd1
mov dword [esi + 0xc], 0x80
mov edi, 0x80
xor edx, edx
mov eax, ecx
div edi
mov dword [esp + 0x38], ecx
test edx, edx
je 0x57cfe5
sub edi, edx
add edi, ecx
jmp 0x57cfe9
mov edi, dword [esp + 0x38]
push edi
mov ecx, esi
call fcn.0040de50
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
lea ecx, [edx + eax*2]
add eax, 1
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov dx, word [eax]
mov word [ecx], dx
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
push eax
push ecx
lea ecx, [edi + 8]
call fcn.00578a00
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [edi + 0xc]
jae 0x57d046
mov esi, dword [esp + 0x30]
nop
mov eax, dword [edi + 0x10]
lea edx, [eax + ecx*2]
movzx eax, word [edx]
add eax, esi
add ecx, 1
mov word [edx], ax
cmp ecx, dword [edi + 0xc]
jb 0x57d030
mov eax, dword [esp + 0x18]
add dword [esp + 0x20], 0x18
add eax, 1
cmp eax, dword [ebx + 0x70]
mov dword [esp + 0x18], eax
jb 0x57ce01
mov ebx, dword [ebx + 4]
test ebx, ebx
jg 0x57ccb0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x14], 0x24
add eax, 1
cmp eax, dword [ecx + 0x58]
mov dword [esp + 0x2c], eax
jb 0x57cc84
mov eax, dword [esp + 0x64]
test eax, eax
mov ecx, dword [esp + 0x70]
mov ebp, ecx
jle 0x57d098
lea ebp, [ecx + 1]
mov ebx, dword [esp + 0x28]
push ebp
lea ecx, [ebx + 0x54]
call fcn.0057ae70
xor edi, edi
cmp dword [esp + 0x70], edi
jbe 0x57d0cd
xor esi, esi
nop
mov edx, dword [esp + 0x74]
mov ecx, dword [ebx + 0x5c]
add edx, esi
push edx
add ecx, esi
call fcn.0059dde0
add edi, 1
add esi, 0x24
cmp edi, dword [esp + 0x70]
jb 0x57d0b0
cmp edi, ebp
je 0x57d0e4
mov edx, dword [ebx + 0x5c]
lea eax, [esp + 0x48]
lea ecx, [edi + edi*8]
push eax
lea ecx, [edx + ecx*4]
call fcn.0059dde0
lea ecx, [esp + 0x48]
mov byte [esp + 0x53c], 0
call fcn.0059e330
xor esi, esi
cmp dword [esp + 0x70], esi
mov dword [esp + 0x53c], 0xffffffff
jbe 0x57d128
xor edi, edi
lea ebx, [ebx]
mov eax, dword [esp + 0x74]
lea ecx, [eax + edi]
call fcn.0059e330
add esi, 1
add edi, 0x24
cmp esi, dword [esp + 0x70]
jb 0x57d110
mov eax, dword [esp + 0x74]
test eax, eax
je 0x57d13f
push 0
push 0xfffffffffffffffe
push str.._AUCliffModel__
push eax
call sub.Storm.dll_Ordinal_403
mov ecx, dword [esp + 0x534]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x51c]
xor ecx, esp
call fcn.00735f58
add esp, 0x52c
ret 4