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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x77efae
mov eax, dword fs:[0]
push eax
sub esp, 0x1e8
push ebx
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov dword [esp + 0x44], ecx
mov esi, dword [ebp + 8]
mov ecx, dword [0x88224c]
mov eax, esi
call fcn.00430c10
push 0xff
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x58]
call fcn.004348b0
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
sub esp, 0x1c
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, esp
mov dword [esp + 0xb0], esp
push 4
mov ebx, 0xf
xor edi, edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push 0x80b2ac
mov byte [ecx + 4], 0
call fcn.004016e0
mov eax, esi
call fcn.00430c00
mov ecx, eax
call fcn.006f1280
add esp, 0x2c
push 0xff
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x58]
call fcn.004348b0
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
sub esp, 0x1c
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, esp
mov dword [esp + 0xb0], esp
push 7
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push 0x80b2b4
mov byte [ecx + 4], 0
call fcn.004016e0
mov eax, esi
call fcn.00430c00
mov ecx, eax
call fcn.006f1280
add esp, 0x2c
push edi
push edi
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x58]
call fcn.004348b0
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
sub esp, 0x1c
mov dword [ecx + 0xc], eax
mov ecx, esp
mov dword [esp + 0xb0], esp
push 4
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push 0x80b2bc
mov byte [ecx + 4], 0
call fcn.004016e0
mov eax, esi
call fcn.00430c00
mov ecx, eax
call fcn.006f1280
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
mov edx, ecx
imul edx, edx, 0x4b0
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, ecx
imul ecx, ecx, 0x55
imul edx, edx, 0x596
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 0x2c
mov dword [esp + 0xb0], eax
mov eax, dword [0x882e34]
mov dword [esp + 0xbc], edi
push esi
lea edi, [esp + 0xb4]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], ebx
call fcn.00432a40
mov ecx, dword [0x8841ac]
test ecx, ecx
jne 0x711a9c
xor eax, eax
jmp 0x711aa1
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
mov edx, dword [0x88b12c]
mov edi, dword [edx + 0x9e0]
imul eax, edi
mov edx, eax
mov eax, 0x1b4e81b5
imul edx
add ecx, 0xffffff60
sar edx, 7
imul ecx, edi
mov ebx, dword [0x8822ec]
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov eax, esi
call fcn.00431710
or edi, 0xffffffff
mov ecx, edi
lea eax, [esp + 0x94]
call fcn.00434820
mov ecx, esi
call fcn.00430c20
mov ecx, dword [0x881e84]
mov eax, esi
call fcn.00430c10
push 4
xor ebx, ebx
push 0x80b2c4
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
mov ecx, 0x884818
lea eax, [esp + 0x50]
mov dword [esp + 0x200], ebx
call fcn.00434820
push eax
mov eax, esi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], edi
cmp dword [esp + 0x30], 0x10
jb 0x711b76
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
push 7
push 0x80b2cc
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], eax
mov byte [esp + 0x24], al
call fcn.004016e0
mov ecx, 0xe8c090
lea eax, [esp + 0x50]
mov dword [esp + 0x200], 1
call fcn.00434820
push eax
mov eax, esi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], edi
cmp dword [esp + 0x30], 0x10
jb 0x711bdf
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
push 7
xor ebx, ebx
push 0x80b2d4
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
push ebx
push ebx
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x208], 2
call fcn.004348b0
push eax
mov eax, esi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], edi
cmp dword [esp + 0x30], 0x10
jb 0x711c49
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
push 0x13
xor edx, edx
xor ebx, ebx
push str.Treasure_Excavated:
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], dx
call fcn.00403a80
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x204], 3
mov eax, dword [0x88b148]
push 0xdc
add eax, 0x7ec
lea esi, [esp + 0x9c]
call fcn.004711e0
mov byte [esp + 0x200], 4
cmp dword [eax + 0x18], 8
jb 0x711cac
mov eax, dword [eax + 4]
jmp 0x711caf
add eax, 4
push eax
lea esi, [esp + 0x54]
call fcn.00439a90
add esp, 4
mov edi, eax
mov byte [esp + 0x200], 5
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
mov edx, ecx
imul ecx, ecx, 0x320
imul edx, edx, 0x8c
mov eax, 0x1b4e81b5
imul edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebx
sar edx, 7
push 1
mov eax, edx
push ebx
shr eax, 0x1f
add eax, edx
push 0xffffffffffffffff
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push edi
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.004335e0
cmp dword [esp + 0x68], 8
jb 0x711d2d
mov edx, dword [esp + 0x54]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
cmp dword [esp + 0xac], 8
mov esi, 7
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebx
mov word [esp + 0x54], ax
jb 0x711d5b
mov ecx, dword [esp + 0x98]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 8
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], ebx
mov word [esp + 0x98], dx
jb 0x711d92
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
push 4
mov esi, 0xf
push 0x80b304
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
lea ecx, [esp + 0x18]
push ecx
mov eax, edi
mov dword [esp + 0x204], 6
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x711df0
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
push 7
push 0x80b30c
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
lea eax, [esp + 0x18]
push eax
mov eax, edi
mov dword [esp + 0x204], 7
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x711e49
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
push 7
push 0x80b314
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
lea edx, [esp + 0x18]
push edx
mov eax, edi
mov dword [esp + 0x204], 8
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x711ea2
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
push 4
push 0x80b31c
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
mov ecx, 0xffffff
lea eax, [esp + 0x50]
mov dword [esp + 0x200], 9
call fcn.00434820
push eax
mov eax, edi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
or esi, 0xffffffff
mov dword [esp + 0x200], esi
cmp dword [esp + 0x30], 0x10
jb 0x711f08
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
xor eax, eax
push 7
push 0x80b324
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], eax
mov byte [esp + 0x24], al
call fcn.004016e0
mov ecx, 0xb06030
lea eax, [esp + 0x50]
mov dword [esp + 0x200], 0xa
call fcn.00434820
push eax
mov eax, edi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], esi
cmp dword [esp + 0x30], 0x10
jb 0x711f71
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
push 7
xor ebx, ebx
push 0x80b32c
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
push ebx
push ebx
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x208], 0xb
call fcn.004348b0
push eax
mov eax, edi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], esi
cmp dword [esp + 0x30], 0x10
jb 0x711fdb
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
push 3
mov word [esp + 0x20], cx
push 0x80b334
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
call fcn.00403a80
mov esi, dword [esp + 0x44]
lea ecx, [esi + 0x260]
mov dword [esp + 0x200], 0xc
mov dword [esp + 0x74], ecx
call fcn.00436230
mov edx, dword [esi + 0x220]
fimul dword [edx + 0xd20]
call fcn.0076f850
mov ecx, eax
lea esi, [esp + 0x110]
call fcn.00439440
mov ebx, eax
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x204], 0xd
mov eax, dword [0x88b148]
push 0xdd
add eax, 0x7ec
lea esi, [esp + 0x134]
call fcn.004711e0
mov byte [esp + 0x200], 0xe
cmp dword [ebx + 0x18], 8
jb 0x71207c
mov ebx, dword [ebx + 4]
jmp 0x71207f
add ebx, 4
cmp dword [eax + 0x18], 8
jb 0x71208a
mov eax, dword [eax + 4]
jmp 0x71208d
add eax, 4
push ebx
push eax
lea esi, [esp + 0x9c]
call fcn.00439a90
add esp, 8
mov byte [esp + 0x200], 0xf
cmp dword [eax + 0x18], 8
jb 0x7120b1
mov ecx, dword [eax + 4]
jmp 0x7120b4
lea ecx, [eax + 4]
xor esi, esi
xor edx, edx
mov eax, ecx
mov word [esp + 0x54], dx
mov dword [esp + 0x68], 7
mov dword [esp + 0x64], esi
lea edx, [eax + 2]
mov edi, edi
mov bx, word [eax]
add eax, 2
cmp bx, si
jne 0x7120d0
sub eax, edx
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.00403a80
mov byte [esp + 0x200], 0x10
mov eax, dword [0x88b12c]
mov ecx, dword [eax + 0x9e0]
mov edx, ecx
imul ecx, ecx, 0x320
imul edx, edx, 0xdc
mov eax, 0x1b4e81b5
imul edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
sar edx, 7
push 1
mov eax, edx
push esi
shr eax, 0x1f
add eax, edx
push 0xffffffffffffffff
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
lea edx, [esp + 0x70]
push edx
mov ecx, edi
call fcn.004335e0
mov ebx, 8
cmp dword [esp + 0x68], ebx
jb 0x71215d
mov eax, dword [esp + 0x54]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x68], 7
mov dword [esp + 0x64], esi
mov word [esp + 0x54], cx
cmp dword [esp + 0xac], ebx
jb 0x712189
mov edx, dword [esp + 0x98]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0xac], 7
mov dword [esp + 0xa8], esi
mov word [esp + 0x98], ax
cmp dword [esp + 0x144], ebx
jb 0x7121be
mov ecx, dword [esp + 0x130]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x144], 7
mov dword [esp + 0x140], esi
mov word [esp + 0x130], dx
cmp dword [esp + 0x128], ebx
jb 0x7121f3
mov eax, dword [esp + 0x114]
push eax
call fcn.006441c7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x200], 0xffffffff
mov dword [esp + 0x128], 7
mov dword [esp + 0x124], esi
mov word [esp + 0x114], cx
cmp dword [esp + 0x30], ebx
jb 0x71222d
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
push 4
push 0x80b33c
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
call fcn.004016e0
lea eax, [esp + 0x18]
push eax
mov eax, edi
mov dword [esp + 0x204], 0x11
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov ebx, 0x10
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], ebx
jb 0x71228f
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
push 7
push str.LAYER_2
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
call fcn.004016e0
lea edx, [esp + 0x18]
push edx
mov eax, edi
mov dword [esp + 0x204], 0x12
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], ebx
jb 0x7122ec
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
push 7
push str.LAYER_3
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
call fcn.004016e0
lea ecx, [esp + 0x18]
push ecx
mov eax, edi
mov dword [esp + 0x204], 0x13
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], ebx
jb 0x712349
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
or ecx, 0xffffffff
lea eax, [esp + 0x50]
call fcn.00434820
mov ecx, edi
call fcn.00430c20
mov ebx, dword [esp + 0x44]
mov eax, dword [ebx]
mov edx, dword [eax + 0x178]
push edi
mov ecx, ebx
call edx
mov eax, dword [ebx + 0x220]
mov ecx, dword [eax + 0x3178]
xor edx, edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], esi
add ecx, 0x3c4
lea ebx, [edx + 3]
nop
mov eax, dword [ecx]
cmp eax, esi
jle 0x71239c
mov dword [esp + 0x7c], eax
mov esi, eax
add edx, eax
add ecx, 4
sub ebx, 1
jne 0x712390
push 7
push 0x80b354
lea ecx, [esp + 0x20]
mov dword [esp + 0x54], edx
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
mov ecx, 0x404000
lea eax, [esp + 0x50]
mov dword [esp + 0x200], 0x14
call fcn.00434820
push eax
mov eax, edi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x712415
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
push 4
xor ebx, ebx
push 0x80b35c
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
call fcn.004016e0
push ebx
push ebx
xor edx, edx
xor ecx, ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x208], 0x15
call fcn.004348b0
push eax
mov eax, edi
call fcn.00430c00
lea ecx, [esp + 0x1c]
mov ebx, eax
call fcn.0058a060
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x712483
mov edx, dword [esp + 0x1c]
push edx
call fcn.006441c7
add esp, 4
mov ecx, 0xffcb58
lea eax, [esp + 0x94]
call fcn.00434820
mov ecx, edi
call fcn.00430c20
mov ecx, 0xffff00
lea eax, [esp + 0x160]
call fcn.00434820
mov ecx, 0xb0ffff
lea eax, [esp + 0x170]
call fcn.00434820
mov ecx, 0xffffff
lea eax, [esp + 0x180]
call fcn.00434820
mov edi, dword [esp + 0x44]
mov ebx, dword [edi + 0x514]
mov eax, dword [0x8820cc]
mov ecx, dword [0x8828a8]
mov edx, dword [0x8810a4]
add edi, 0x504
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], edx
mov dword [esp + 0xc8], edi
cmp dword [edi + 0xc], ebx
jbe 0x712515
call fcn.006441b7
mov ecx, dword [edi + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [edi + 0x10]
jbe 0x712533
call fcn.006441b7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
mov eax, dword [edi]
push ebx
push edx
push ecx
push eax
lea ebx, [esp + 0xdc]
call fcn.0040c340
mov edi, dword [esp + 0x44]
mov ebx, dword [edi + 0x52c]
add edi, 0x51c
mov dword [esp + 0x84], edi
cmp dword [edi + 0xc], ebx
jbe 0x71256d
call fcn.006441b7
mov ecx, dword [edi + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [edi + 0x10]
jbe 0x71258b
call fcn.006441b7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
mov eax, dword [edi]
push ebx
push edx
push ecx
push eax
lea ebx, [esp + 0xdc]
call fcn.0040c340
test esi, esi
jle 0x71306e
fild dword [esp + 0x4c]
mov dword [esp + 0x6c], 0
fstp qword [esp + 0x154]
jmp 0x7125d4
mov esi, dword [esp + 0x7c]
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x6c]
lea ebx, [eax + edi*4 + 0x3c4]
mov edx, ecx
imul ecx, ecx, 0xbe
imul edx, edx, 0x2f8
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [ebx]
cdq
idiv esi
mov dword [esp + 0x34], ebx
mov esi, eax
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [esp + 0x74]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add esi, edx
add eax, esi
mov dword [esp + 0x4c], eax
call fcn.00436230
fimul dword [esp + 0x4c]
call fcn.0076f850
mov ebx, eax
mov dword [esp + 0x48], ebx
cmp edi, 1
jne 0x7126a3
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
mov esi, 0xc6
fdiv qword [0x82dcf8]
fstp dword [esp + 0x14]
fild dword [esp + 0x48]
fdiv dword [esp + 0x14]
fsub qword [0x82e778]
call fcn.0076f850
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0x534], esi
mov esi, 0x372
mov dword [ecx + 0x538], esi
lea edx, [edi + 0x43]
mov dword [ecx + 0x53c], eax
mov dword [ecx + 0x540], edx
mov esi, dword [esp + edi*4 + 0x148]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
mov edx, dword [0x88b12c]
sub ecx, ebx
mov dword [esp + 0x110], ecx
mov ecx, dword [edx + 0x9e0]
mov edx, ecx
imul edx, edx, 0x5c
mov dword [esp + 0x11c], eax
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul ecx, ecx, 0xc6
imul edx, edx, 0x30c
mov dword [esp + 0x118], ebx
mov ebx, eax
mov eax, 0x1b4e81b5
imul ebx, edi
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov ebx, dword [ebp + 8]
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push esi
lea eax, [esp + 0x11c]
mov esi, ebx
mov dword [esp + 0x120], 0
call fcn.00431840
mov edx, edi
shl edx, 4
lea eax, [esp + edx + 0x160]
mov ecx, ebx
mov dword [esp + 0x38], eax
call fcn.00430c20
push 3
xor eax, eax
push 0x80b364
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
mov word [esp + 0x24], ax
call fcn.00403a80
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x200], 0x16
mov ecx, dword [ecx]
lea esi, [esp + 0xd8]
call fcn.00439440
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x18]
mov byte [esp + 0x200], 0x17
mov eax, dword [0x88b148]
push edx
push 0xdf
add eax, 0x7ec
lea esi, [esp + 0xfc]
call fcn.004711e0
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x200], 0x18
cmp dword [ecx + 0x18], 8
jb 0x7127df
mov edx, ecx
mov ecx, dword [edx + 4]
jmp 0x7127e6
mov ecx, dword [esp + 0x3c]
add ecx, 4
cmp dword [eax + 0x18], 8
jb 0x7127f1
mov eax, dword [eax + 4]
jmp 0x7127f4
add eax, 4
push ecx
push eax
lea esi, [esp + 0x198]
call fcn.00439a90
add esp, 8
mov dword [esp + 0x14], eax
mov byte [esp + 0x200], 0x19
mov eax, dword [0x88b12c]
mov ecx, dword [eax + 0x9e0]
mov edx, ecx
imul edx, edx, 0x5c
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul ecx, ecx, 0x564
imul edx, edx, 0x348
mov esi, eax
mov eax, 0x1b4e81b5
imul esi, edi
imul edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
sar edx, 7
push 1
mov eax, edx
push 1
add esi, edx
shr eax, 0x1f
push 0xffffffffffffffff
add eax, esi
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x30]
push ecx
push edx
mov ecx, ebx
call fcn.004335e0
cmp dword [esp + 0x1a8], 8
jb 0x71289d
mov eax, dword [esp + 0x194]
push eax
call fcn.006441c7
add esp, 4
xor esi, esi
xor ecx, ecx
cmp dword [esp + 0x10c], 8
mov dword [esp + 0x1a8], 7
mov dword [esp + 0x1a4], esi
mov word [esp + 0x194], cx
jb 0x7128d5
mov edx, dword [esp + 0xf8]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
cmp dword [esp + 0xf0], 8
mov dword [esp + 0x10c], 7
mov dword [esp + 0x108], esi
mov word [esp + 0xf8], ax
jb 0x71290b
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 8
mov dword [esp + 0xf0], 7
mov dword [esp + 0xec], esi
mov word [esp + 0xdc], dx
jb 0x712946
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [esp + 0x74]
mov dword [esp + 0xb0], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xb8], ecx
mov ecx, esi
mov dword [esp + 0xbc], edx
call fcn.00436230
fadd st(0), st(0)
fsub qword [0x82e460]
fcomp qword [0x7a8008]
fnstsw ax
test ah, 0x41
je 0x7129af
mov ecx, esi
call fcn.00436230
fadd st(0), st(0)
fsub qword [0x82e460]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x7129e0
fstp st(0)
mov ecx, esi
call fcn.00436230
fadd st(0), st(0)
fsub qword [0x82e460]
fld qword [0x7a8008]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x7129e0
mov ecx, esi
fstp st(0)
call fcn.00436230
fadd st(0), st(0)
fsub qword [0x82e460]
fimul dword [esp + 0xbc]
call fcn.0076f850
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xb0]
mov ecx, ebx
call fcn.00430c20
push 4
xor eax, eax
push str._d__
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
mov word [esp + 0x24], ax
call fcn.00403a80
lea ecx, [esp + 0x18]
mov dword [esp + 0x200], 0x1a
mov eax, dword [0x88b148]
push ecx
push 0xde
add eax, 0x7ec
lea esi, [esp + 0xfc]
call fcn.004711e0
mov byte [esp + 0x200], 0x1b
cmp dword [eax + 0x18], 8
jb 0x712a66
mov esi, dword [eax + 4]
jmp 0x712a69
lea esi, [eax + 4]
mov edx, dword [esp + 0x34]
fild dword [edx]
fmul qword [0x82dc58]
fdiv qword [esp + 0x154]
fadd qword [0x87d2f0]
call fcn.0076f850
push eax
push esi
lea esi, [esp + 0xe0]
call fcn.00439a90
add esp, 8
mov dword [esp + 0x14], eax
mov byte [esp + 0x200], 0x1c
mov eax, dword [0x88b12c]
mov ecx, dword [eax + 0x9e0]
mov edx, ecx
imul edx, edx, 0x5c
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul ecx, ecx, 0x7d
imul edx, edx, 0x348
mov esi, eax
mov eax, 0x1b4e81b5
imul esi, edi
imul edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
sar edx, 7
push 1
mov eax, edx
push 0
add esi, edx
shr eax, 0x1f
push 0xffffffffffffffff
add eax, esi
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
push ecx
push edx
mov ecx, ebx
call fcn.004335e0
cmp dword [esp + 0xf0], 8
jb 0x712b31
mov eax, dword [esp + 0xdc]
push eax
call fcn.006441c7
add esp, 4
xor esi, esi
xor ecx, ecx
cmp dword [esp + 0x10c], 8
mov ebx, 7
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xec], esi
mov word [esp + 0xdc], cx
jb 0x712b6a
mov edx, dword [esp + 0xf8]
push edx
call fcn.006441c7
add esp, 4
xor eax, eax
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], 8
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x108], esi
mov word [esp + 0xf8], ax
jb 0x712ba1
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], esi
mov word [esp + 0x1c], dx
cmp edi, 2
jne 0x712f93
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x1c0]
sub eax, dword [ecx + 0x1bc]
test eax, 0xfffffffc
je 0x712f93
mov eax, dword [ecx + 0x1c0]
sub eax, dword [ecx + 0x1bc]
mov dword [esp + 0x40], esi
sar eax, 2
cmp eax, esi
mov dword [esp + 0x3c], eax
jle 0x71305c
fild dword [esp + 0x3c]
fstp dword [esp + 0xc0]
fild dword [esp + 0x3c]
fstp qword [esp + 0xcc]
mov edi, dword [esp + 0x80]
mov ecx, dword [edi + 0x1c0]
sub ecx, dword [edi + 0x1bc]
sar ecx, 2
cmp esi, ecx
jb 0x712c2b
call fcn.006441b7
mov edx, dword [edi + 0x1bc]
mov ecx, dword [edi + 0x120]
sub ecx, dword [edi + 0x11c]
lea eax, [edx + esi*4]
mov esi, dword [eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x712c5c
call fcn.006441b7
mov ecx, dword [0x88b12c]
imul esi, esi, 0x64
fld dword [esp + 0xc0]
add esi, dword [edi + 0x11c]
mov eax, 0x1b4e81b5
mov dword [esp + 0x78], esi
mov esi, dword [ecx + 0x9e0]
mov ecx, esi
imul ecx, ecx, 0xffffff79
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x4c]
lea eax, [ecx + edx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], esi
fidiv dword [esp + 0x14]
fild dword [esp + 0x34]
fmul qword [0x82e770]
fdiv qword [0x82dcf8]
fstp dword [esp + 0x14]
fmul dword [esp + 0x14]
fsubr qword [0x82dfa0]
fld qword [0x82def0]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x712cf0
fld st(1)
fld qword [0x87d2f0]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x712cf6
fstp st(2)
fstp st(0)
fld st(0)
jmp 0x712d09
fld qword [0x87d2f0]
fxch st(1)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x712d05
fstp st(2)
jmp 0x712d07
fstp st(0)
fxch st(1)
mov edx, dword [esp + 0x48]
fstp dword [esp + 0x34]
add ecx, edx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
mov ecx, esi
fild dword [esp + 0x40]
imul ecx, ecx, 0xd2
fadd st(2)
fmul st(1)
mov eax, 0x1b4e81b5
fdiv qword [esp + 0xcc]
imul ecx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
call fcn.0076f850
fld dword [esp + 0x34]
fcomp qword [0x82e768]
mov ecx, esi
imul ecx, ecx, 0x3f2
add eax, ebx
mov dword [esp + 0x14], eax
mov eax, 0x1b4e81b5
imul ecx
fnstsw ax
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov dword [esp + 0x38], edi
test ah, 5
jp 0x712e08
mov eax, dword [esp + 0x40]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
fild dword [esp + 0x14]
inc eax
cdq
sub eax, edx
faddp st(2)
sar eax, 1
mov dword [esp + 0x14], eax
fmulp st(1)
fild dword [esp + 0x14]
fdivp st(1)
call fcn.0076f850
add eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
and eax, 0x80000001
jns 0x712dc4
dec eax
or eax, 0xfffffffe
inc eax
mov eax, 0x1b4e81b5
jne 0x712ded
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
add ecx, ecx
add ecx, ecx
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add edi, ecx
mov dword [esp + 0x38], edi
jmp 0x712e0c
lea esi, [esi + esi*4]
add esi, esi
add esi, esi
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov dword [esp + 0x38], edi
jmp 0x712e0c
fstp st(0)
fstp st(0)
mov esi, dword [ebp + 8]
mov cl, 1
mov eax, esi
call fcn.00430cc0
mov ecx, dword [esp + 0x74]
call fcn.00436230
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x58]
call fcn.004348b0
mov ecx, esi
call fcn.00430c20
lea eax, [esp + 0x1ac]
call fcn.0057e490
fld dword [esp + 0x34]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
call fcn.0057e5b0
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + 0x40]
cmp eax, 0xffffffff
jne 0x712e78
xor eax, eax
jmp 0x712e81
mov edx, dword [eax*4 + 0x879598]
mov eax, dword [edx]
fild dword [esp + 0x38]
sub esp, 8
lea ecx, [esp + 0x1b4]
fstp dword [esp + 0x40]
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
push ecx
push esi
call fcn.004325e0
xor cl, cl
mov eax, esi
call fcn.00430cc0
mov edx, dword [0x88b12c]
mov ecx, dword [edx + 0x9e0]
lea edx, [ecx + ecx*4]
shl edx, 5
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x70], eax
lea ecx, [ecx + ecx*4]
shl ecx, 4
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0xc4], eax
fild dword [esp + 0x78]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(1)
fsubr dword [esp + 0x14]
call fcn.0076f850
fld dword [esp + 0x38]
fild dword [esp + 0xc4]
mov dword [esp + 0x12c], eax
fmul st(2)
fsubp st(1)
call fcn.0076f850
fild dword [esp + 0x70]
mov dword [esp + 0x130], eax
fmul st(1)
call fcn.0076f850
fimul dword [esp + 0x8c]
mov dword [esp + 0x134], eax
call fcn.0076f850
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0xc8]
lea ebx, [esp + 0x12c]
call fcn.0040adb0
mov esi, dword [esp + 0x40]
inc esi
cmp esi, dword [esp + 0x3c]
mov dword [esp + 0x40], esi
jl 0x712c0c
jmp 0x71305c
mov eax, dword [0x88b12c]
mov ecx, dword [eax + 0x9e0]
mov edx, ecx
imul edx, edx, 0x5a
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea edx, [ecx + ecx*4]
add edx, edx
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x316
mov dword [esp + 0x70], eax
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul ecx, ecx, 0xc6
imul edx, edx, 0x5c
mov dword [esp + 0x8c], eax
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x1b4e81b5
imul esi, edi
add esi, dword [esp + 0x8c]
imul ecx
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x70]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xa0], ebx
lea ebx, [esp + 0x94]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], esi
call fcn.0040adb0
mov eax, dword [esp + 0x6c]
inc eax
cmp eax, 3
mov dword [esp + 0x6c], eax
jl 0x7125d0
push 7
xor edi, edi
push 0x80b378
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], edi
mov byte [esp + 0x24], 0
call fcn.004016e0
mov esi, dword [ebp + 8]
lea edx, [esp + 0x18]
push edx
mov eax, esi
mov dword [esp + 0x204], 0x1d
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
mov ebx, 0x10
mov dword [esp + 0x200], 0xffffffff
cmp dword [esp + 0x30], ebx
jb 0x7130d5
mov eax, dword [esp + 0x1c]
push eax
call fcn.006441c7
add esp, 4
push 4
push 0x80b380
lea ecx, [esp + 0x168]
mov dword [esp + 0x180], 0xf
mov dword [esp + 0x17c], edi
mov byte [esp + 0x16c], 0
call fcn.004016e0
lea ecx, [esp + 0x160]
push ecx
mov eax, esi
mov dword [esp + 0x204], 0x1e
call fcn.00430c00
mov ecx, eax
call fcn.0058a360
cmp dword [esp + 0x178], ebx
jb 0x71313c
mov edx, dword [esp + 0x164]
push edx
call fcn.006441c7
add esp, 4
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4