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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x95c
push ebx
mov ebx, dword [ebp + 0x28]
push esi
mov esi, dword [ebp + 0x14]
push edi
xor edi, edi
cmp dword [0x90d9a8], edi
je 0x5a9983
test ecx, ecx
js 0x5a9983
mov eax, ecx
and eax, 0x78000000
cmp eax, 0x8000000
jne 0x5a9983
mov eax, ecx
and eax, 0xffff
cmp eax, 0x8000
jge 0x5a9983
mov eax, dword [eax*4 + 0x90d9fc]
cmp eax, edi
mov dword [esp + 0x94], eax
je 0x5a9983
mov edx, dword [eax]
shl edx, 0x10
and ecx, 0x7ff0000
cmp edx, ecx
jne 0x5a9983
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
call fcn.0057e664
mov eax, dword [esi + 8]
sub eax, dword [esi]
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
cmp eax, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
jle 0x5aa7b9
cmp ecx, edi
jle 0x5aa7b9
cmp dword [ebp + 0x20], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x84], edi
je 0x5a8e27
mov edx, dword [ebp + 0xc]
mov ebx, dword [sym.imp.GDI32.dll_GetObjectA]
lea ecx, [esp + 0xc0]
push ecx
push 0x18
push edx
call ebx
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xcc]
add eax, 3
mov dword [esp + 0x7c], edx
cdq
and edx, 3
add eax, edx
mov esi, eax
mov eax, dword [ebp + 8]
sar esi, 2
add esi, esi
add esi, esi
cmp dword [ebp + 0x10], edi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0x8c], eax
je 0x5a8d89
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0xc0]
push ecx
push 0x18
push edx
call ebx
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
add eax, 3
mov dword [esp + 0x80], edx
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [ebp + 8]
sar edi, 2
add edi, edi
add edi, edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x90], edi
mov dword [esp + 0x84], eax
mov ebx, dword [ebp + 0x28]
mov edx, dword [esp + 0x1c]
cmp byte [edx + 8], 0
je 0x5aa526
cmp dword [0x9bed28], 0
je 0x5a9983
mov ebx, edx
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x9becb4]
push ecx
call fcn.0057fc9e
mov dword [esp + 0x38], eax
xor eax, eax
add esp, 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
cmp byte [ebx + 0xa], al
mov dword [esp + 0x30], eax
je 0x5a8f61
mov eax, dword [0x9bed28]
mov edx, dword [eax]
mov edx, dword [edx + 0x90]
push 0
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx*4 + 0x9becb4]
push 2
push ecx
mov ecx, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
push eax
call edx
test eax, eax
je 0x5a8ea1
push 0x8818bc
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x434]
mov edx, dword [eax + 0x428]
mov esi, dword [eax + 0x430]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x42c]
mov dword [esp + 0x88], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0x8c], eax
je 0x5a8d8c
mov edx, dword [ebx + 0x434]
mov eax, dword [ebx + 0x428]
mov ecx, dword [ebx + 0x42c]
mov edi, dword [ebx + 0x430]
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x90], edi
mov dword [esp + 0x84], ebx
jmp 0x5a8d8c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push 0x2000
push 0
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x78]
xor eax, eax
cmp dword [ebp + 0x30], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
je 0x5a8ef0
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], 0
je 0x5a8ef0
cmp dword [esp + 0x50], 0
jne 0x5a8ef0
mov eax, 1
jmp 0x5a8ef2
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0xb1e738]
push 0
push 0
push ecx
mov ecx, dword [ebx + 0x14]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x84]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0xa4]
push edi
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x64]
push esi
push edx
mov edx, dword [esp + 0x70]
push eax
push ecx
push edx
call fcn.0057aa96
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
add esp, 0x50
push eax
call edx
cmp dword [ebp + 0x34], 1
jne 0x5a998d
cmp dword [ebx + 0x28], 0
lea edi, [ebx + 0x2c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x80], 0
jle 0x5a9949
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x58]
add ecx, eax
mov dword [esp + 0x9c], ecx
mov edx, dword [edi + 0x10]
cmp edx, dword [esp + 0x9c]
jge 0x5a9924
mov ecx, dword [esp + 0x78]
mov esi, dword [ebp + 0x1c]
mov eax, dword [edi + 0x14]
add ecx, esi
cmp eax, ecx
mov dword [esp + 0x14], ecx
jge 0x5a9924
mov ecx, dword [edi + 0x18]
add ecx, edx
cmp dword [ebp + 0x18], ecx
jge 0x5a9924
mov ecx, dword [edi + 0x1c]
add ecx, eax
cmp esi, ecx
jge 0x5a9924
mov ecx, dword [ebp + 0x18]
cmp edx, ecx
jle 0x5a8ff2
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov eax, dword [edi + 0x10]
sub eax, ecx
mov dword [esp + 0x64], eax
jmp 0x5a9000
mov eax, ecx
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], ebx
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
add eax, edx
cmp eax, dword [esp + 0x9c]
jge 0x5a9026
mov edx, dword [edi + 0x18]
mov dword [esp + 0x48], edx
mov eax, dword [edi + 0x10]
sub eax, ecx
add eax, dword [edi + 0x18]
mov dword [esp + 0x6c], eax
jmp 0x5a9038
mov esi, dword [esp + 0x58]
mov eax, esi
sub eax, edx
add eax, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], esi
mov edx, dword [edi + 0x14]
mov ecx, dword [ebp + 0x1c]
cmp edx, ecx
jle 0x5a904d
mov dword [esp + 0x44], ebx
mov esi, dword [edi + 0x14]
sub esi, ecx
jmp 0x5a9057
mov eax, ecx
sub eax, edx
mov dword [esp + 0x44], eax
xor esi, esi
mov dword [esp + 0x68], esi
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0x1c]
add edx, eax
cmp edx, dword [esp + 0x14]
jge 0x5a907a
mov ebx, dword [edi + 0x1c]
mov dword [esp + 0x4c], ebx
mov eax, dword [edi + 0x14]
sub eax, ecx
add eax, dword [edi + 0x1c]
jmp 0x5a908a
mov edx, dword [esp + 0x78]
mov ebx, edx
sub ebx, eax
add ebx, ecx
mov dword [esp + 0x4c], ebx
mov eax, edx
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 4]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
add dword [esp + 0x64], ecx
add dword [esp + 0x6c], ecx
add eax, edx
add esi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], esi
cmp byte [eax + 0xa], 1
jne 0x5a90e8
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, dword [0x9bed28]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x60], ecx
mov edx, dword [edi + 8]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x6c]
push edx
mov edx, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [ecx + 0x78]
call eax
jmp 0x5a9924
mov edx, eax
cmp byte [edx + 0xc], 0
je 0x5a90f9
mov ecx, dword [edi + 4]
mov dword [esp + 0x24], ecx
jmp 0x5a90ff
mov eax, dword [edi]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x24]
cmp eax, 1
mov dword [esp + 0x3c], eax
jle 0x5a95a7
cmp dword [esp + 0x40], 0
jne 0x5a9252
mov ecx, dword [esp + 0x48]
cmp ecx, dword [edi + 0x20]
jne 0x5a9252
cmp dword [esp + 0x44], 0
jne 0x5a9252
cmp ebx, dword [edi + 0x24]
jne 0x5a9252
mov esi, dword [ebp + 0x24]
cmp dword [esi + 0x438], eax
jl 0x5a9255
mov ecx, dword [esi + 0x424]
cmp ecx, 1
jne 0x5a9165
mov edi, dword [edx + 4]
cmp dword [edi*4 + 0x9becb4], 0x31545844
je 0x5a91c1
cmp ecx, 2
jne 0x5a917a
mov edi, dword [edx + 4]
cmp dword [edi*4 + 0x9becb4], 0x32545844
je 0x5a91c1
cmp ecx, 3
jne 0x5a918f
mov edi, dword [edx + 4]
cmp dword [edi*4 + 0x9becb4], 0x33545844
je 0x5a91c1
cmp ecx, 4
jne 0x5a91a4
mov edi, dword [edx + 4]
cmp dword [edi*4 + 0x9becb4], 0x34545844
je 0x5a91c1
cmp ecx, 5
jne 0x5a9255
mov ecx, dword [edx + 4]
cmp dword [ecx*4 + 0x9becb4], 0x35545844
jne 0x5a9255
mov eax, dword [esi + 0x42c]
imul eax, dword [esi + 0x428]
movzx edx, word [esi]
mov esi, dword [esi + 0x434]
imul eax, edx
cdq
and edx, 7
add eax, edx
mov edi, eax
xor ebx, ebx
sar edi, 3
cmp dword [esp + 0x3c], ebx
jle 0x5a9902
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x30]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x5a9966
mov ecx, dword [esp + 0x2c]
push edi
push esi
push ecx
call fcn.0057bde2
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
add esp, 0xc
push ebx
push eax
mov eax, dword [edx + 0x50]
call eax
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add esi, edi
mov edi, eax
cmp edi, 8
jge 0x5a9244
mov edi, 8
add ebx, 1
cmp ebx, dword [esp + 0x3c]
jl 0x5a91f1
jmp 0x5a9902
mov esi, dword [ebp + 0x24]
mov ecx, dword [edx + 4]
mov ecx, dword [ecx*4 + 0x9becb4]
cmp ecx, 0x31545844
je 0x5a9595
cmp ecx, 0x32545844
je 0x5a9595
cmp ecx, 0x33545844
je 0x5a9595
cmp ecx, 0x34545844
je 0x5a9595
cmp ecx, 0x35545844
je 0x5a9595
cmp dword [esi + 0x438], eax
jl 0x5a9327
mov eax, dword [ebp + 0x24]
movzx edi, word [eax + 2]
imul edi, dword [eax + 0x42c]
imul edi, dword [eax + 0x428]
mov esi, dword [eax + 0x434]
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
jle 0x5a9902
mov edi, edi
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
push 0
lea ecx, [esp + 0x30]
push ecx
push ebx
push eax
call edx
test eax, eax
jne 0x5aa45d
mov eax, dword [esp + 0x2c]
push edi
push esi
push eax
call fcn.0057bde2
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push ebx
push eax
call edx
mov eax, edi
cdq
and edx, 3
add eax, edx
add esi, edi
sar eax, 2
add ebx, 1
cmp ebx, dword [esp + 0x3c]
mov edi, eax
jl 0x5a92d0
jmp 0x5a9902
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x40]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x14], ecx
jle 0x5a934a
lea esp, [esp]
add ecx, ecx
cmp ecx, eax
jl 0x5a9340
mov dword [esp + 0x14], ecx
sub ebx, dword [esp + 0x44]
mov eax, 1
cmp ebx, eax
mov dword [esp + 0x38], eax
jle 0x5a936a
jmp 0x5a9360
add eax, eax
cmp eax, ebx
jl 0x5a9360
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
movzx edi, word [eax + 2]
imul edi, dword [esp + 0x14]
mov esi, edi
imul esi, dword [esp + 0x38]
push 0x417
lea ecx, [esi + esi]
push str...DxLibDxGraphics2.cpp
push ecx
call fcn.0057e8b2
mov ebx, eax
add esp, 0xc
test ebx, ebx
lea edx, [ebx + esi]
mov dword [esp + 0x94], edx
je 0x5aa476
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [esp + 0x3c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
jle 0x5a9587
jmp 0x5a93db
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
test eax, eax
jne 0x5a9470
cmp dword [ebp + 0x30], eax
je 0x5a9400
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], 0
je 0x5a9400
cmp dword [esp + 0x50], 0
jne 0x5a9400
mov eax, 1
jmp 0x5a9402
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0xb1e738]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x28]
push 0
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
push 0
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
push edi
push ebx
call fcn.0057aa96
add esp, 0x50
mov esi, ebx
jmp 0x5a94a3
test al, 1
je 0x5a947f
mov esi, dword [esp + 0x94]
mov eax, ebx
jmp 0x5a9488
mov eax, dword [esp + 0x94]
mov esi, ebx
push ecx
mov ecx, dword [esp + 0x38]
push edx
push 0
push 0
push 0
push 0
push edi
push eax
push edi
push esi
push ecx
call fcn.0057be5f
add esp, 0x2c
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
push eax
call edx
test eax, eax
jne 0x5aa45d
mov ecx, dword [esp + 0x14]
push eax
mov edx, dword [esp + 0x3c]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x50]
push ecx
push eax
push eax
push eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x6c]
push eax
push edi
push esi
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
call fcn.0057aa96
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax]
add esp, 0x50
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov edx, eax
sar eax, 1
mov dword [esp + 0x88], ecx
sar ecx, 1
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], ecx
jne 0x5a9563
mov dword [esp + 0x14], 1
cmp dword [esp + 0x38], 0
jne 0x5a9572
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jl 0x5a93d0
push ebx
call fcn.0057cf76
add esp, 4
jmp 0x5a9902
push 0x881860
call fcn.0057a587
add esp, 4
jmp 0x5a9902
mov ecx, dword [esp + 0x44]
mov eax, dword [edi + 0x18]
cmp eax, dword [edi + 0x20]
mov esi, dword [esp + 0x40]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ebx
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], 0
jge 0x5a95ea
cmp eax, ecx
jne 0x5a95ea
add ecx, 1
mov byte [esp + 0x1b], 1
mov dword [esp + 0x48], ecx
mov eax, dword [edi + 0x1c]
cmp eax, dword [edi + 0x24]
jge 0x5a9602
cmp eax, ebx
jne 0x5a9602
add ebx, 1
mov byte [esp + 0x13], 1
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push eax
call edx
test eax, eax
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
jne 0x5aa4ca
test esi, esi
jne 0x5a9715
cmp ecx, dword [edi + 0x20]
jne 0x5a9715
test edx, edx
jne 0x5a9715
cmp ebx, dword [edi + 0x24]
jne 0x5a9715
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x424]
cmp eax, 1
mov ebx, dword [esp + 0x1c]
jne 0x5a968d
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x31545844
je 0x5a96e1
cmp eax, 2
jne 0x5a96a2
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x32545844
je 0x5a96e1
cmp eax, 3
jne 0x5a96b7
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x33545844
je 0x5a96e1
cmp eax, 4
jne 0x5a96cc
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x34545844
je 0x5a96e1
cmp eax, 5
jne 0x5a971c
mov eax, dword [ebx + 4]
cmp dword [eax*4 + 0x9becb4], 0x35545844
jne 0x5a971c
mov eax, dword [ecx + 0x42c]
imul eax, dword [ecx + 0x428]
movzx ecx, word [ecx]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x74]
sar eax, 3
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0057bde2
add esp, 0xc
jmp 0x5a98f4
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebx + 4]
mov eax, dword [edx*4 + 0x9becb4]
cmp eax, 0x31545844
je 0x5a98e7
cmp eax, 0x32545844
je 0x5a98e7
cmp eax, 0x33545844
je 0x5a98e7
cmp eax, 0x34545844
je 0x5a98e7
cmp eax, 0x35545844
je 0x5a98e7
push ecx
call fcn.0057b59a
add esp, 4
test eax, eax
jl 0x5aa4f1
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x5a9786
push eax
call fcn.0057b59a
add esp, 4
test eax, eax
jl 0x5aa4f1
cmp dword [ebp + 0x30], 0
mov esi, dword [esp + 0x34]
je 0x5a97a4
cmp byte [esi + 7], 0
je 0x5a97a4
cmp dword [esp + 0x50], 0
jne 0x5a97a4
mov eax, 1
jmp 0x5a97a6
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0xb1e738]
push 0
push 0
push ecx
mov ecx, dword [ebx + 0x14]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x84]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push esi
push edx
push eax
call fcn.0057aa96
add esp, 0x50
cmp byte [esp + 0x13], 0
je 0x5a9849
mov ecx, dword [esp + 0x6c]
movzx edx, word [esi + 2]
sub ecx, dword [esp + 0x64]
mov eax, dword [edi + 0x1c]
imul ecx, edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x2c]
lea ebx, [eax - 1]
imul eax, ecx
imul ebx, ecx
add ebx, edx
add eax, edx
push ebx
push eax
call fcn.0057bde2
add esp, 0xc
mov bl, byte [esp + 0x1b]
test bl, bl
je 0x5a98a0
movzx edx, word [esi + 2]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x70]
imul eax, edx
sub ecx, dword [esp + 0x68]
add eax, dword [esp + 0x2c]
sub edx, 2
je 0x5a9885
sub edx, 2
jne 0x5a98a0
test ecx, ecx
jle 0x5a98a0
mov edx, dword [eax - 4]
mov dword [eax], edx
add eax, dword [esp + 0x28]
sub ecx, 1
jne 0x5a9875
jmp 0x5a98a0
test ecx, ecx
jle 0x5a98a0
lea esp, [esp]
mov dx, word [eax - 2]
mov word [eax], dx
add eax, dword [esp + 0x28]
sub ecx, 1
jne 0x5a9890
cmp byte [esp + 0x13], 0
je 0x5a98f4
test bl, bl
je 0x5a98f4
movzx ecx, word [esi + 2]
mov esi, dword [edi + 0x18]
mov eax, dword [edi + 0x1c]
imul esi, ecx
mov edx, dword [esp + 0x28]
add esi, dword [esp + 0x2c]
imul eax, edx
add eax, esi
sub ecx, 2
je 0x5a98da
sub ecx, 2
jne 0x5a98f4
mov ecx, eax
sub ecx, edx
mov edx, dword [ecx - 4]
mov dword [eax], edx
jmp 0x5a98f4
mov ecx, eax
sub ecx, edx
mov dx, word [ecx - 2]
mov word [eax], dx
jmp 0x5a98f4
push 0x881860
call fcn.0057a587
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0xc], 0
mov edi, dword [esp + 0x54]
je 0x5a9924
mov edx, dword [edi]
mov eax, dword [0x9bed28]
mov ecx, dword [eax]
push edx
mov edx, dword [edi + 4]
push edx
push eax
mov eax, dword [ecx + 0x7c]
call eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
add eax, 1
add edi, 0x28
cmp eax, dword [ecx + 0x28]
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], edi
jl 0x5a8f97
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa7b9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5a9976
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
push 0x881824
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x94]
xor eax, eax
lea esi, [ecx + 0x48]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
cmp dword [ecx + 0x44], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], eax
jle 0x5a9949
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x58]
mov edi, dword [ebp + 0x1c]
add eax, edx
mov dword [esp + 0x9c], eax
mov ecx, dword [esi]
cmp ecx, dword [esp + 0x9c]
jge 0x5aa42d
mov ebx, dword [esp + 0x78]
mov eax, dword [esi + 4]
add ebx, edi
cmp eax, ebx
mov dword [esp + 0x14], ebx
jge 0x5aa42d
mov ebx, dword [esi + 0x10]
add ebx, ecx
cmp edx, ebx
jge 0x5aa42d
mov ebx, dword [esi + 0x14]
add ebx, eax
cmp edi, ebx
jge 0x5aa42d
cmp ecx, edx
jle 0x5a9a1b
mov dword [esp + 0x40], 0
mov eax, dword [esi]
sub eax, edx
mov dword [esp + 0x64], eax
jmp 0x5a9a2b
mov eax, edx
sub eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x10]
add ecx, eax
cmp ecx, dword [esp + 0x9c]
jge 0x5a9a4f
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 0x10]
sub eax, edx
add eax, dword [esi]
mov dword [esp + 0x6c], eax
jmp 0x5a9a61
mov ebx, dword [esp + 0x58]
mov ecx, ebx
sub ecx, eax
add ecx, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x6c], ebx
mov eax, dword [esi + 4]
cmp eax, edi
jle 0x5a9a75
xor edx, edx
mov dword [esp + 0x44], edx
mov ebx, dword [esi + 4]
sub ebx, edi
jmp 0x5a9a7f
mov edx, edi
sub edx, eax
mov dword [esp + 0x44], edx
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x14]
add edi, eax
cmp edi, dword [esp + 0x14]
jge 0x5a9aa3
mov eax, dword [esi + 0x14]
mov dword [esp + 0x4c], eax
mov edi, dword [esi + 0x14]
sub edi, dword [ebp + 0x1c]
add edi, dword [esi + 4]
jmp 0x5a9ab5
mov eax, dword [esp + 0x78]
sub eax, dword [esi + 4]
mov edi, dword [esp + 0x78]
add eax, dword [ebp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x70], edi
mov edi, dword [esi + 8]
add dword [esp + 0x40], edi
add edx, dword [esi + 0xc]
mov edi, dword [ebp + 0x14]
mov edi, dword [edi + 4]
mov dword [esp + 0x44], edx
add ecx, dword [esi + 8]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
mov dword [esp + 0x48], ecx
add eax, dword [esi + 0xc]
add dword [esp + 0x70], edi
add dword [esp + 0x64], edx
add dword [esp + 0x6c], edx
add ebx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x68], ebx
cmp byte [edi + 0xa], 1
jne 0x5a9b4e
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [0x9bed28]
mov edx, dword [eax]
mov edx, dword [edx + 0x78]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esi + 0x5c]
mov ecx, dword [ecx + 8]
push ecx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
push eax
call edx
test eax, eax
je 0x5aa427
push 0x8817e8
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0xc], 0
mov edx, dword [esi + 0x5c]
mov dword [esp + 0x7c], edx
je 0x5a9b60
mov ebx, dword [edx + 4]
jmp 0x5a9b62
mov ebx, dword [edx]
mov dword [esp + 0x24], ebx
mov ebx, dword [edi + 0x24]
cmp ebx, 1
mov dword [esp + 0x3c], ebx
jle 0x5aa095
cmp dword [esp + 0x40], 0
jne 0x5a9cd7
cmp ecx, dword [edx + 0x20]
jne 0x5a9cd7
cmp dword [esp + 0x44], 0
jne 0x5a9cd7
cmp eax, dword [edx + 0x24]
jne 0x5a9cd7
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x3c]
cmp dword [ebx + 0x438], edx
jl 0x5a9cda
mov edx, dword [ebx + 0x424]
cmp edx, 1
jne 0x5a9bd0
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x9becb4], 0x31545844
je 0x5a9c38
mov edi, dword [esp + 0x1c]
cmp edx, 2
jne 0x5a9be9
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x9becb4], 0x32545844
je 0x5a9c38
mov edi, dword [esp + 0x1c]
cmp edx, 3
jne 0x5a9c02
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x9becb4], 0x33545844
je 0x5a9c38
mov edi, dword [esp + 0x1c]
cmp edx, 4
jne 0x5a9c1b
mov edi, dword [edi + 4]
cmp dword [edi*4 + 0x9becb4], 0x34545844
je 0x5a9c38
mov edi, dword [esp + 0x1c]
cmp edx, 5
jne 0x5a9cda
mov edx, dword [edi + 4]
cmp dword [edx*4 + 0x9becb4], 0x35545844
jne 0x5a9cda
mov eax, dword [ebx + 0x42c]
imul eax, dword [ebx + 0x428]
movzx ecx, word [ebx]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [ebx + 0x434]
mov edi, eax
xor ebx, ebx
sar edi, 3
cmp dword [esp + 0x3c], ebx
mov dword [esp + 0x20], edx
jle 0x5aa405
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x30]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x5a9966
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
push edi
push ecx
push edx
call fcn.0057bde2
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push ebx
push eax
call edx
add dword [esp + 0x20], edi
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
mov edi, eax
cmp edi, 8
jge 0x5a9cc9
mov edi, 8
add ebx, 1
cmp ebx, dword [esp + 0x3c]
jl 0x5a9c70
jmp 0x5aa405
mov ebx, dword [ebp + 0x24]
mov edx, dword [edi + 4]
mov edx, dword [edx*4 + 0x9becb4]
cmp edx, 0x31545844
je 0x5aa083
cmp edx, 0x32545844
je 0x5aa083
cmp edx, 0x33545844
je 0x5aa083
cmp edx, 0x34545844
je 0x5aa083
cmp edx, 0x35545844
je 0x5aa083
mov edx, dword [esp + 0x3c]
cmp dword [ebx + 0x438], edx
jl 0x5a9dbd
mov eax, dword [ebp + 0x24]
movzx edi, word [eax + 2]
imul edi, dword [eax + 0x42c]
imul edi, dword [eax + 0x428]
mov eax, dword [eax + 0x434]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x20], eax
jle 0x5aa405
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x30]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
jne 0x5aa45d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
push edi
push ecx
push edx
call fcn.0057bde2
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
add esp, 0xc
push ebx
push eax
call edx
add dword [esp + 0x20], edi
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add ebx, 1
cmp ebx, dword [esp + 0x3c]
mov edi, eax
jl 0x5a9d60
jmp 0x5aa405
sub ecx, dword [esp + 0x40]
mov edx, 1
cmp ecx, edx
mov dword [esp + 0x54], edx
jle 0x5a9dda
mov edi, edi
add edx, edx
cmp edx, ecx
jl 0x5a9dd0
mov dword [esp + 0x54], edx
sub eax, dword [esp + 0x44]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x14], ecx
jle 0x5a9dfa
jmp 0x5a9df0
add ecx, ecx
cmp ecx, eax
jl 0x5a9df0
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x34]
movzx esi, word [eax + 2]
imul esi, dword [esp + 0x54]
mov edi, esi
imul edi, dword [esp + 0x14]
push 0x5b2
lea ecx, [edi + edi]
push str...DxLibDxGraphics2.cpp
push ecx
call fcn.0057e8b2
mov ebx, eax
add esp, 0xc
test ebx, ebx
lea edx, [ebx + edi]
mov dword [esp + 0x7c], edx
je 0x5aa476
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
mov ecx, eax
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [esp + 0x3c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
jle 0x5aa06e
jmp 0x5a9e68
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x54]
test eax, eax
jne 0x5a9efd
cmp dword [ebp + 0x30], eax
je 0x5a9e8d
mov eax, dword [esp + 0x34]
cmp byte [eax + 7], 0
je 0x5a9e8d
cmp dword [esp + 0x50], 0
jne 0x5a9e8d
mov eax, 1
jmp 0x5a9e8f
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0xb1e738]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x28]
push 0
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
push 0
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
push esi
push ebx
call fcn.0057aa96
add esp, 0x50
mov edi, ebx
jmp 0x5a9f2a
test al, 1
je 0x5a9f09
mov edi, dword [esp + 0x7c]
mov eax, ebx
jmp 0x5a9f0f
mov eax, dword [esp + 0x7c]
mov edi, ebx
push ecx
mov ecx, dword [esp + 0x38]
push edx
push 0
push 0
push 0
push 0
push esi
push eax
push esi
push edi
push ecx
call fcn.0057be5f
add esp, 0x2c
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
sar edx, cl
sar eax, cl
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x44]
sar edx, cl
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x4c]
sar edx, cl
cmp dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jne 0x5a9f75
add eax, 1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa4]
cmp edx, eax
jne 0x5a9f8a
add eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
push eax
call edx
test eax, eax
jne 0x5aa49d
mov ecx, dword [esp + 0x14]
push eax
mov edx, dword [esp + 0x3c]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x50]
push ecx
push eax
push eax
push eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x6c]
push eax
push esi
push edi
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
call fcn.0057aa96
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax]
add esp, 0x50
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov edx, eax
sar eax, 1
mov dword [esp + 0x54], ecx
sar ecx, 1
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], ecx
jne 0x5aa04a
mov dword [esp + 0x14], 1
cmp dword [esp + 0x38], 0
jne 0x5aa059
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jl 0x5a9e60
push ebx
call fcn.0057cf76
mov esi, dword [esp + 0x8c]
add esp, 4
jmp 0x5aa405
push 0x881860
call fcn.0057a587
add esp, 4
jmp 0x5aa405
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov dword [esp + 0xb4], edx
mov edx, dword [esi + 0x5c]
mov ebx, dword [edx + 0x18]
cmp ebx, dword [edx + 0x20]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], 0
jge 0x5aa0dc
mov edx, dword [esp + 0x7c]
cmp dword [edx + 0x18], ecx
jne 0x5aa0dc
add ecx, 1
mov byte [esp + 0x1b], 1
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x5c]
mov edx, dword [ecx + 0x1c]
cmp edx, dword [ecx + 0x24]
jge 0x5aa0f8
cmp dword [ecx + 0x1c], eax
jne 0x5aa0f8
add eax, 1
mov byte [esp + 0x13], 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push 0
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push eax
call edx
test eax, eax
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
jne 0x5aa4ca
test edi, edi
jne 0x5aa20e
mov eax, dword [esi + 0x5c]
cmp ecx, dword [eax + 0x20]
jne 0x5aa20e
test edx, edx
jne 0x5aa20e
cmp ebx, dword [eax + 0x24]
jne 0x5aa20e
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 0x424]
cmp eax, 1
mov ebx, dword [esp + 0x1c]
jne 0x5aa186
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x31545844
je 0x5aa1da
cmp eax, 2
jne 0x5aa19b
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x32545844
je 0x5aa1da
cmp eax, 3
jne 0x5aa1b0
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x33545844
je 0x5aa1da
cmp eax, 4
jne 0x5aa1c5
mov edx, dword [ebx + 4]
cmp dword [edx*4 + 0x9becb4], 0x34545844
je 0x5aa1da
cmp eax, 5
jne 0x5aa215
mov eax, dword [ebx + 4]
cmp dword [eax*4 + 0x9becb4], 0x35545844
jne 0x5aa215
mov eax, dword [ecx + 0x42c]
imul eax, dword [ecx + 0x428]
movzx ecx, word [ecx]
imul eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x74]
sar eax, 3
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0057bde2
add esp, 0xc
jmp 0x5aa3f7
mov ecx, dword [ebp + 0x24]
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
mov eax, dword [edx*4 + 0x9becb4]
cmp eax, 0x31545844
je 0x5aa3ea
cmp eax, 0x32545844
je 0x5aa3ea
cmp eax, 0x33545844
je 0x5aa3ea
cmp eax, 0x34545844
je 0x5aa3ea
cmp eax, 0x35545844
je 0x5aa3ea
push ecx
call fcn.0057b59a
add esp, 4
test eax, eax
jl 0x5aa4f1
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x5aa27f
push eax
call fcn.0057b59a
add esp, 4
test eax, eax
jl 0x5aa4f1
cmp dword [ebp + 0x30], 0
mov edi, dword [esp + 0x34]
je 0x5aa29d
cmp byte [edi + 7], 0
je 0x5aa29d
cmp dword [esp + 0x50], 0
jne 0x5aa29d
mov eax, 1
jmp 0x5aa29f
xor eax, eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [0xb1e738]
push 0
push 0
push ecx
mov ecx, dword [ebx + 0x14]
push 0
push edx
push ecx
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x7c]
push 0
lea edx, [esp + 0x84]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edi
push edx
push eax
call fcn.0057aa96
add esp, 0x50
cmp byte [esp + 0x13], 0
je 0x5aa345
mov ecx, dword [esi + 0x5c]
mov eax, dword [ecx + 0x1c]
mov edx, dword [esp + 0x6c]
movzx ecx, word [edi + 2]
sub edx, dword [esp + 0x64]
lea ebx, [eax - 1]
imul edx, ecx
mov ecx, dword [esp + 0x28]
imul ebx, ecx
imul eax, ecx
push edx
mov edx, dword [esp + 0x30]
add ebx, edx
add eax, edx
push ebx
push eax
call fcn.0057bde2
add esp, 0xc
mov bl, byte [esp + 0x1b]
test bl, bl
je 0x5aa3a0
movzx edx, word [edi + 2]
mov eax, dword [esi + 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x70]
imul eax, edx
sub ecx, dword [esp + 0x68]
add eax, dword [esp + 0x2c]
sub edx, 2
je 0x5aa384
sub edx, 2
jne 0x5aa3a0
test ecx, ecx
jle 0x5aa3a0
mov edx, dword [eax - 4]
mov dword [eax], edx
add eax, dword [esp + 0x28]
sub ecx, 1
jne 0x5aa374
jmp 0x5aa3a0
test ecx, ecx
jle 0x5aa3a0
jmp 0x5aa390
mov dx, word [eax - 2]
mov word [eax], dx
add eax, dword [esp + 0x28]
sub ecx, 1
jne 0x5aa390
cmp byte [esp + 0x13], 0
je 0x5aa3f7
test bl, bl
je 0x5aa3f7
movzx ecx, word [edi + 2]
mov eax, dword [esi + 0x5c]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
imul edi, ecx
mov edx, dword [esp + 0x28]
add edi, dword [esp + 0x2c]
imul eax, edx
add eax, edi
sub ecx, 2
je 0x5aa3dd
sub ecx, 2
jne 0x5aa3f7
mov ecx, eax
sub ecx, edx
mov edx, dword [ecx - 4]
mov dword [eax], edx
jmp 0x5aa3f7
mov ecx, eax
sub ecx, edx
mov dx, word [ecx - 2]
mov word [eax], dx
jmp 0x5aa3f7
push 0x881860
call fcn.0057a587
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0xc], 0
je 0x5aa427
mov eax, dword [esi + 0x5c]
mov edi, dword [eax]
mov ecx, dword [0x9bed28]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
push edi
push eax
push ecx
mov ecx, dword [edx + 0x7c]
call ecx
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
add eax, 1
add esi, 0x60
cmp eax, dword [ecx + 0x44]
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], esi
jl 0x5a99c7
jmp 0x5a9949
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5a9976
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x5a9976
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa486
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x881790
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa4ad
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push ebx
call fcn.0057cf76
push 0x881824
call fcn.0057a587
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa4da
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x881768
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa50f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x881734
call fcn.0057a587
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x20], 0
je 0x5aa5d9
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x98]
mov ecx, 0x10a
lea edi, [esp + 0xe8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x510], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x514], ecx
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
lea ecx, [esp + 0xe8]
mov dword [esp + 0x518], edx
mov dword [esp + 0x51c], eax
mov dword [esp + 0x54], ecx
je 0x5aa5e0
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x80]
mov ecx, 0x10a
lea edi, [esp + 0x528]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x950], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x954], eax
mov dword [esp + 0x958], ecx
mov dword [esp + 0x95c], edx
lea ebx, [esp + 0x528]
jmp 0x5aa5e0
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x54], eax
cmp dword [ebp + 0x34], 1
jne 0x5aa636
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x58]
mov eax, dword [esi + 0x28]
add edx, ecx
cmp edx, eax
jle 0x5aa600
sub eax, ecx
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x78]
mov edi, dword [ebp + 0x1c]
mov eax, dword [esi + 0x2c]
lea edx, [ecx + edi]
cmp edx, eax
jle 0x5aa615
sub eax, edi
mov ecx, eax
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x5a9983
test ecx, ecx
jle 0x5a9983
mov edx, dword [ebp + 0x30]
push edx
mov edx, dword [ebp + 0x18]
push edi
push edx
push ecx
push eax
jmp 0x5aa693
mov eax, dword [esp + 0x94]
mov edx, dword [ebp + 0x18]
mov esi, dword [esp + 0x58]
mov ecx, dword [eax + 0x2c]
add esi, edx
cmp esi, ecx
jle 0x5aa653
sub ecx, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x78]
mov edi, dword [ebp + 0x1c]
mov esi, dword [eax + 0x30]
lea edx, [ecx + edi]
cmp edx, esi
jle 0x5aa668
sub esi, edi
mov ecx, esi
mov edx, dword [esp + 0x58]
test edx, edx
jle 0x5a9983
test ecx, ecx
jle 0x5a9983
mov esi, dword [ebp + 0x30]
push esi
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x24]
add esi, edi
add eax, dword [ebp + 0x18]
push esi
mov esi, dword [esp + 0x24]
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
lea eax, [esi + 0x24]
push eax
push ebx
push ecx
call fcn.0057bc70
add esp, 0x28
cmp byte [esi + 0x12], 1
jne 0x5aa7b9
mov edx, dword [esi + 0x38]
cmp dword [edx + 0x38], 0
je 0x5aa7b9
mov eax, dword [0xb16114]
push 0xff
mov ecx, eax
and ecx, 0xff
push ecx
movzx ecx, byte [esi + 9]
movzx edx, ah
movzx eax, byte [0xb16116]
push edx
xor edx, edx
cmp byte [esi + 0x10], 0x10
push eax
setne dl
push 0
push ecx
push edx
call fcn.0057d45d
add esp, 0xc
push eax
call fcn.0057ee34
mov esi, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
add esp, 0x14
xor edx, edx
cmp dword [esi + 0x1c], 1
jne 0x5aa763
and eax, 0xffffff
add ecx, 8
lea ecx, [ecx]
mov edi, dword [ecx - 8]
and edi, 0xffffff
cmp edi, eax
je 0x5aa7ac
mov edi, dword [ecx - 4]
and edi, 0xffffff
cmp edi, eax
je 0x5aa79f
mov edi, dword [ecx]
and edi, 0xffffff
cmp edi, eax
je 0x5aa7a4
mov edi, dword [ecx + 4]
and edi, 0xffffff
cmp edi, eax
je 0x5aa7a9
add edx, 4
add ecx, 0x10
cmp edx, 0x100
jl 0x5aa720
jmp 0x5aa7ac
and eax, 0xffff
add ecx, 4
jmp 0x5aa770
movzx edi, word [ecx - 4]
cmp edi, eax
je 0x5aa7ac
movzx edi, word [ecx - 2]
cmp edi, eax
je 0x5aa79f
movzx edi, word [ecx]
cmp edi, eax
je 0x5aa7a4
movzx edi, word [ecx + 2]
cmp edi, eax
je 0x5aa7a9
add edx, 4
add ecx, 8
cmp edx, 0x100
jl 0x5aa770
jmp 0x5aa7ac
add edx, 1
jmp 0x5aa7ac
add edx, 2
jmp 0x5aa7ac
add edx, 3
cmp edx, 0x100
jne 0x5aa7b6
xor edx, edx
mov dword [esi + 0x18], edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret