Function at 0x45ec10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x920316
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9b4
push ebx
mov ebx, ecx
push esi
push edi
lea ecx, [esp + 0x74]
call fcn.00911f0c
xor esi, esi
lea ecx, [esp + 0xc]
mov dword [esp + 0x9c8], esi
call fcn.00911f0c
lea ecx, [esp + 0x20]
mov byte [esp + 0x9c8], 1
call fcn.00911f0c
lea ecx, [esp + 0x48]
mov byte [esp + 0x9c8], 2
call fcn.00911f0c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x9c8], 3
call fcn.00911f0c
lea ecx, [esp + 0x28]
mov byte [esp + 0x9c8], 4
call fcn.00911f0c
lea ecx, [esp + 0x30]
mov byte [esp + 0x9c8], 5
call fcn.00911f0c
push esi
lea ecx, [esp + 0x104]
mov byte [esp + 0x9cc], 6
mov dword [esp + 0x30], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
call fcn.00735050
mov eax, dword [0xa8e738]
lea ecx, [esp + 0x20]
push eax
push 0xa
push 0x25
push 0xa771b0
push ecx
mov byte [esp + 0x9dc], 7
call fcn.00911f42
mov edx, dword [0xa8e73c]
lea eax, [esp + 0x5c]
push edx
push 0xa
push 0x25
push 0xa771b0
push eax
call fcn.00911f42
add esp, 0x28
lea ecx, [esp + 0x1c]
push ecx
mov ecx, 0xa90270
call fcn.009121e2
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x9cc], 8
call fcn.00911f3c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
lea ecx, [esp + 0x3c]
call fcn.009121b2
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x10]
call fcn.00911f3c
mov ecx, dword [0xa8e874]
mov edi, 0xa7647c
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x45eda3
test al, al
je 0x45ed9f
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x45eda3
add esi, 2
add edi, 2
test al, al
jne 0x45ed7f
xor eax, eax
jmp 0x45eda8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45edf0
mov edi, 0xa76474
mov esi, ecx
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x45eddb
test al, al
je 0x45edd7
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x45eddb
add esi, 2
add edi, 2
test al, al
jne 0x45edb3
xor eax, eax
jmp 0x45ede0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45edf0
push 0xa907a4
push str..GCA
jmp 0x45edfa
push 0xa907a4
push str..GCZ
lea ecx, [esp + 0x14]
call fcn.009121a0
cmp dword [0xa8e764], 0x2e
jne 0x45ee40
lea eax, [esp + 0xc]
push 0xa78178
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.009121dc
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x9cc], 9
call fcn.00911f3c
mov byte [esp + 0x9c8], 7
lea ecx, [esp + 0x1c]
jmp 0x45ee72
lea edx, [esp + 0xc]
push 0xa78174
lea eax, [esp + 0x20]
push edx
push eax
call fcn.009121dc
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x9cc], 0xa
call fcn.00911f3c
mov byte [esp + 0x9c8], 7
lea ecx, [esp + 0x1c]
call fcn.00911ee2
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
call fcn.0091203e
lea ecx, [esp + 0x104]
call fcn.007351b0
test eax, eax
je 0x45fb5f
cmp dword [0xa8fd14], 3
je 0x45eedc
mov eax, dword [esp + 0x30]
push 0xa900d8
push 0
push eax
mov ecx, 0xa90210
call fcn.009121ca
test eax, eax
jne 0x45eedc
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
call fcn.0091203e
lea ecx, [esp + 0x104]
call fcn.007355a0
push 0
mov ecx, ebx
call fcn.004175c0
mov eax, dword [ebx + 0x2748]
mov edx, dword [ebx + 0x9cc]
mov esi, dword [ebp + 8]
dec eax
mov dword [ebx + 0x8c4], eax
mov eax, dword [0xa8e570]
mov ecx, dword [0xa8e758]
mov dword [esp + 0x44], edx
mov dword [ebx + 0x23f0], eax
mov edx, dword [esi]
mov dword [esp + 0x4c], ecx
push eax
mov ecx, esi
call dword [edx + 0x38]
mov edx, dword [esi]
push 4
mov ecx, esi
call dword [edx + 0x3c]
mov eax, dword [esi + 8]
push 6
push eax
nop
call fcn.00b14d9a
push eax
call fcn.00912368
lea ecx, [ebx + 0x2198]
mov dword [ebx + 0x2194], eax
mov edx, dword [eax + 4]
push ecx
push 0x3c
push edx
nop
call fcn.00b14da3
mov ecx, 0x1e
xor eax, eax
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x10]
push eax
push ecx
push esi
mov ecx, ebx
call fcn.0045fcc0
mov ecx, dword [ebx + 0x8c4]
xor eax, eax
test ecx, ecx
jl 0x45f925
lea edi, [eax + 1]
mov ecx, ebx
push edi
mov dword [esp + 0x54], edi
call fcn.004175c0
cmp word [ebx + 0x275e], 1
jne 0x45f915
mov edx, dword [ebx + 0x598]
mov eax, dword [ebx + 0x9cc]
push 0
mov ecx, dword [esp + 0x14]
push 1
push edx
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
push ecx
push esi
mov ecx, ebx
call fcn.00460a00
mov edx, dword [0xa8e750]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
add edx, eax
mov al, byte [ebx + 0x516]
sub ecx, edx
test al, al
mov dword [esp + 0x10], ecx
je 0x45f019
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc]
push ecx
push 0xa771a8
push edx
call fcn.00911f42
mov ecx, dword [esp + 0x18]
mov eax, dword [0xa8e758]
mov edi, dword [esi]
add esp, 0xc
mov edx, dword [ecx - 8]
add eax, 3
push edx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov al, byte [ebx + 0x517]
test al, al
je 0x45f078
mov edx, dword [ebx + 0x2748]
lea eax, [esp + 0xc]
push edx
push str.__5d
push eax
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
mov edi, dword [esi]
imul eax, dword [ebx + 0x734]
cdq
sub eax, edx
mov edx, dword [ebx + 0x978]
mov ecx, eax
add esp, 0xc
mov eax, dword [ebx + edx*4 + 0x484]
sar ecx, 1
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, 3
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov al, byte [ebx + 0x518]
test al, al
je 0x45f0ea
mov eax, dword [ebx + 0x274c]
cmp eax, 0x2710
push eax
jle 0x45f09c
lea edx, [esp + 0x10]
push 0xa761d8
push edx
jmp 0x45f0a6
lea eax, [esp + 0x10]
push str._05ld
push eax
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
mov edi, dword [esi]
imul eax, dword [ebx + 0x738]
cdq
sub eax, edx
mov edx, dword [ebx + 0x97c]
mov ecx, eax
add esp, 0xc
mov eax, dword [ebx + edx*4 + 0x484]
sar ecx, 1
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, 3
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov al, byte [ebx + 0x519]
test al, al
je 0x45f203
lea edx, [ebx + 0x2760]
lea eax, [esp + 0xc]
push edx
push 0xa76fa0
push eax
call fcn.00911f42
mov eax, dword [esp + 0x18]
mov edx, dword [ebx + 0x73c]
add esp, 0xc
mov ecx, dword [eax - 8]
cmp ecx, edx
jle 0x45f1c0
lea edi, [ebx + 0x2378]
lea esi, [ebx + 0x224c]
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax - 8]
mov eax, edx
imul eax, dword [ebx + 0x237c]
cdq
idiv ecx
lea edi, [ebx + 0x215c]
mov dword [ebx + 0x237c], eax
lea eax, [ebx + 0x2378]
push eax
nop
call fcn.00b14dac
push eax
mov ecx, edi
call fcn.00912338
mov esi, dword [ebp + 8]
push edi
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x30]
mov eax, dword [ebx + 0x9c8]
mov ecx, dword [ebx + 0x960]
imul eax, dword [ebx + 0x73c]
cdq
sub eax, edx
mov edi, dword [esi]
mov edx, eax
mov eax, dword [ebx + ecx*4 + 0x574]
mov ecx, dword [esp + 0xc]
sar edx, 1
sub eax, edx
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
sub eax, 3
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov edx, dword [esi]
lea eax, [ebx + 0x2144]
push eax
mov ecx, esi
call dword [edx + 0x30]
jmp 0x45f1f5
mov eax, dword [ebx + 0x9c8]
mov edi, dword [ebx + 0x960]
imul eax, edx
cdq
sub eax, edx
push ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [ebx + edi*4 + 0x574]
push ecx
mov ecx, dword [esp + 0x18]
sar edx, 1
sub eax, edx
mov edx, dword [esi]
sub eax, 3
push ecx
push eax
mov ecx, esi
call dword [edx + 0x64]
mov edx, dword [esi]
lea eax, [ebx + 0x2144]
push eax
mov ecx, esi
call dword [edx + 0x30]
mov al, byte [ebx + 0x51a]
test al, al
je 0x45f647
mov al, byte [0xa8e784]
test al, al
je 0x45f45a
lea eax, [ebx + 0x27a8]
lea ecx, [esp + 0xc]
push eax
call fcn.00911f06
mov ecx, dword [esp + 0xc]
push 0xa76f28
mov edi, dword [ecx - 8]
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], edi
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f31e
push 0xa77194
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f31e
push 0xa77190
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f31e
push 0xa76f34
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f31e
lea eax, [ebx + 0x27a8]
lea ecx, [esp + 0x68]
push eax
call fcn.00911edc
mov edi, dword [ebx + 0x740]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x9c8]
mov eax, edi
sub eax, edx
mov byte [esp + 0x9c8], 0xd
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov edx, dword [ebx + 0x96c]
mov ecx, eax
mov eax, dword [ebx + edx*4 + 0x54c]
sar ecx, 1
add ecx, eax
mov eax, edi
imul eax, dword [ebx + 0x9c8]
cdq
sub eax, edx
mov edi, dword [esi]
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x68]
sub ecx, 5
mov edx, dword [eax - 8]
push edx
push eax
mov eax, dword [esp + 0x18]
push eax
push ecx
mov ecx, esi
call dword [edi + 0x64]
lea ecx, [esp + 0x68]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
jmp 0x45f647
lea ecx, [esp + 0x78]
push 1
push ecx
lea ecx, [esp + 0x14]
call fcn.0091218e
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x9cc], 0xb
call fcn.00911f3c
lea ecx, [esp + 0x78]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
lea eax, [edi - 1]
lea edx, [esp + 0x7c]
push eax
push edx
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], eax
call fcn.00912044
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x9cc], 0xc
call fcn.00911f3c
lea ecx, [esp + 0x7c]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
mov edi, dword [ebx + 0x740]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x9c8]
mov eax, edi
sub eax, edx
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebx + 0x96c]
sar ecx, 1
mov edx, dword [ebx + eax*4 + 0x54c]
mov eax, edi
imul eax, dword [ebx + 0x9c8]
add ecx, edx
mov edi, dword [esi]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, 3
mov edx, dword [eax - 8]
push edx
mov edx, dword [esp + 0x14]
push eax
push edx
push ecx
mov ecx, esi
call dword [edi + 0x64]
mov eax, dword [esi]
lea ecx, [ebx + 0x2154]
push ecx
mov ecx, esi
call dword [eax + 0x30]
mov eax, dword [ebx + 0x740]
mov edx, dword [esp + 0x14]
mov edi, dword [ebx + 0x9c8]
sub eax, edx
imul eax, edi
cdq
sub eax, edx
sar eax, 1
cdq
sub eax, edx
mov edx, dword [ebx + 0x96c]
mov ecx, eax
mov eax, dword [ebx + edx*4 + 0x54c]
sar ecx, 1
add ecx, eax
mov eax, dword [esp + 0x18]
imul eax, edi
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [ebx + 0x740]
imul eax, edi
cdq
sub eax, edx
mov edi, dword [esi]
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, 3
mov edx, dword [eax - 8]
push edx
push eax
mov eax, dword [esp + 0x18]
push eax
push ecx
jmp 0x45f634
lea edi, [ebx + 0x27a8]
lea ecx, [esp + 0xc]
push edi
call fcn.00911f06
push 0xa76f28
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f522
push 0xa77194
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f522
push 0xa77190
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f522
push 0xa76f34
lea ecx, [esp + 0x10]
call fcn.009121e8
cmp eax, 0xffffffff
jne 0x45f522
push edi
lea ecx, [esp + 0x20]
call fcn.00911edc
mov eax, dword [ebx + 0x9c8]
mov edi, dword [esi]
imul eax, dword [ebx + 0x740]
cdq
sub eax, edx
mov edx, dword [ebx + 0x96c]
mov ecx, eax
mov byte [esp + 0x9c8], 0x10
mov eax, dword [ebx + edx*4 + 0x54c]
sar ecx, 1
sub eax, ecx
mov ecx, dword [esp + 0x1c]
sub eax, 3
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
jmp 0x45f647
lea edx, [esp + 0x84]
push 1
push edx
lea ecx, [esp + 0x14]
call fcn.0091218e
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x9cc], 0xe
call fcn.00911f3c
lea ecx, [esp + 0x84]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x80]
mov eax, dword [eax - 8]
dec eax
push eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00912044
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x9cc], 0xf
call fcn.00911f3c
lea ecx, [esp + 0x80]
mov byte [esp + 0x9c8], 7
call fcn.00911ee2
mov eax, dword [ebx + 0x9c8]
mov ecx, dword [ebx + 0x96c]
imul eax, dword [ebx + 0x740]
cdq
sub eax, edx
mov edi, dword [esi]
mov edx, eax
mov eax, dword [ebx + ecx*4 + 0x54c]
mov ecx, dword [esp + 0xc]
sar edx, 1
sub eax, edx
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
sub eax, 3
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov edx, dword [esi]
lea eax, [ebx + 0x2154]
push eax
mov ecx, esi
call dword [edx + 0x30]
mov ecx, dword [esp + 0xc]
mov edi, dword [ebx + 0x96c]
mov edx, dword [ecx - 8]
mov ecx, dword [ebx + 0x9c8]
mov eax, ecx
mov edi, dword [ebx + edi*4 + 0x54c]
imul eax, dword [ebx + 0x740]
mov dword [esp + 0x18], edx
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x18]
imul eax, ecx
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
mov edx, dword [ecx - 8]
sar eax, 1
push edx
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [edi + eax - 3]
mov edi, dword [esi]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
mov edx, dword [esi]
lea eax, [ebx + 0x2144]
push eax
mov ecx, esi
call dword [edx + 0x30]
mov al, byte [ebx + 0x51b]
test al, al
je 0x45f6f3
mov ecx, dword [ebx + 0x27c4]
mov edx, dword [ebx + 0x27c0]
push ecx
push edx
mov ecx, ebx
call fcn.008f5ce0
fld dword [ebx + 0x9d8]
fcompp
fnstsw ax
test ah, 1
je 0x45f6f3
mov eax, dword [0xa8e738]
mov ecx, dword [ebx + 0x744]
push eax
push ecx
push 0x25
lea edx, [esp + 0x2c]
push 0xa771b0
push edx
call fcn.00911f42
mov eax, dword [ebx + 0x27c4]
mov ecx, dword [ebx + 0x27c0]
mov edx, dword [esp + 0x5c]
push eax
push ecx
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
mov ecx, dword [ebx + 0x96c]
imul eax, dword [ebx + 0x744]
cdq
sub eax, edx
mov edi, dword [esi]
mov edx, eax
mov eax, dword [ebx + ecx*4 + 0x550]
mov ecx, dword [esp + 0x30]
add esp, 0x24
sar edx, 1
sub eax, edx
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
sub eax, 3
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
fld qword [ebx + 0x27d8]
fmul qword [ebx + 0x27c0]
mov edx, dword [ebx + 0x27d8]
mov eax, dword [ebx + 0x27dc]
mov dword [esp + 0xb8], edx
mov edx, dword [ebx + 0x27cc]
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x27d0]
fst qword [esp + 0xc0]
fadd qword [esp + 0x5c]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx + 0x27c8]
mov dword [esp + 0xd8], eax
movsx eax, byte [edx + 0xc]
fstp qword [esp + 0x5c]
fld qword [ebx + 0x27c8]
fmul qword [ebx + 0x27c0]
mov dword [esp + 0x18], eax
mov edx, dword [ebx + 0x960]
mov dword [esp + 0xc8], ecx
mov ecx, dword [ebx + 0x27d4]
mov dword [esp + 0xdc], ecx
mov ecx, dword [ebx + 0x95c]
fst qword [esp + 0xd0]
fadd qword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x14], 6
lea edi, [ebx + 0x748]
fstp qword [esp + 0x6c]
fld qword [ebx + 0x27c0]
fmul qword [ebx + 0x27d0]
fst qword [esp + 0xe0]
fadd qword [esp + 0x34]
fstp qword [esp + 0x34]
fld qword [ebx + 0x27d8]
fsub qword [ebx + 0x27d0]
fstp qword [esp + 0xe8]
fild dword [esp + 0x18]
fmul qword [ebx + 0x27c0]
fstp qword [esp + ecx*8 + 0x88]
mov dword [esp + edx*8 + 0x88], eax
mov dword [esp + edx*8 + 0x8c], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x18], eax
push 0xa907a4
lea ecx, [esp + 0x10]
call fcn.00911f06
mov ecx, dword [esp + 0x14]
mov al, byte [ebx + ecx + 0x516]
test al, al
je 0x45f8ac
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, eax
mov dword [esp + 0x54], edx
push ecx
push edx
mov ecx, ebx
mov dword [esp + 0x60], eax
call fcn.008f5ce0
fcomp qword [0x9cb968]
fnstsw ax
test ah, 0x41
jne 0x45f8ac
mov eax, dword [0xa8e738]
mov ecx, dword [edi]
push eax
push ecx
push 0x25
lea edx, [esp + 0x2c]
push 0xa771b0
push edx
call fcn.00911f42
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x34]
push eax
push ecx
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
add esp, 0x24
imul eax, dword [edi]
cdq
sub eax, edx
mov edx, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [edi - 0x190]
sar ecx, 1
sub eax, ecx
mov ecx, dword [edx - 8]
mov edx, dword [esi]
push ecx
mov ecx, dword [esp + 0x10]
sub eax, 3
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc eax
add edi, 4
add edx, 8
cmp eax, 0xf
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jl 0x45f7f7
mov edx, dword [0xa8e750]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
add edx, eax
push eax
sub ecx, edx
lea eax, [esp + 0x30]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x18]
push ecx
lea eax, [esp + 0x58]
push edx
inc edi
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x44], edi
call fcn.0045fc30
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x50]
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [ebx + 0x8c4]
mov eax, edi
cmp eax, ecx
jle 0x45ef82
mov edx, dword [esp + 0x60]
mov ecx, 0x1e
xor eax, eax
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xe4], eax
mov eax, dword [ebx + 0x9cc]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x70]
push 0
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xd8], ecx
mov ecx, dword [ebx + 0x598]
sar eax, 1
push 1
sub edx, eax
push ecx
push edx
push esi
mov ecx, ebx
call fcn.00460a00
mov eax, dword [0xa8e750]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov al, byte [ebx + 0x519]
test al, al
mov dword [esp + 0x10], ecx
je 0x45fa09
lea edx, [esp + 0xc]
push 0xa77188
push edx
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
mov edi, dword [esi]
imul eax, dword [ebx + 0x73c]
cdq
sub eax, edx
mov edx, dword [ebx + 0x960]
mov ecx, eax
add esp, 8
mov eax, dword [ebx + edx*4 + 0x574]
sar ecx, 1
sub eax, ecx
mov ecx, dword [esp + 0xc]
sub eax, 3
mov edx, dword [ecx - 8]
push edx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edi + 0x64]
lea edx, [esp + 0xb8]
mov dword [esp + 0x14], 6
mov dword [esp + 0x24], edx
lea edi, [ebx + 0x748]
push 0xa907a4
lea ecx, [esp + 0x10]
call fcn.00911f06
mov eax, dword [esp + 0x14]
mov cl, byte [ebx + eax + 0x516]
test cl, cl
je 0x45fad8
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov eax, edx
mov dword [esp + 0x34], ecx
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x40], edx
call fcn.008f5ce0
fcomp qword [0x9cb968]
fnstsw ax
test ah, 0x41
jne 0x45fad8
mov edx, dword [0xa8e738]
mov eax, dword [edi]
push edx
push eax
push 0x25
lea ecx, [esp + 0x2c]
push 0xa771b0
push ecx
call fcn.00911f42
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
push edx
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.00911f42
mov eax, dword [ebx + 0x9c8]
add esp, 0x24
imul eax, dword [edi]
cdq
sub eax, edx
mov edx, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [edi - 0x190]
sar ecx, 1
sub eax, ecx
mov ecx, dword [edx - 8]
mov edx, dword [esi]
push ecx
mov ecx, dword [esp + 0x10]
sub eax, 3
push ecx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
inc eax
add edi, 4
add edx, 8
cmp eax, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
jl 0x45fa22
mov edx, dword [0xa8e750]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add edx, edi
push edi
sub ecx, edx
inc eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x30]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x18]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
push esi
mov ecx, ebx
call fcn.0041ba10
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x10]
push ecx
push edi
push edx
push esi
mov ecx, ebx
call fcn.0045dd70
mov ecx, 0xa90210
call fcn.009121d0
mov ecx, dword [ebx + 0x2194]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x30]
push fcn.00911ee2
push 0x12d
lea edx, [esp + 0x16c]
push 4
push edx
mov byte [esp + 0x9d8], 0x11
call fcn.009128f2
lea ecx, [esp + 0x100]
mov byte [esp + 0x9c8], 6
call fcn.00911f36
lea ecx, [esp + 0x30]
mov byte [esp + 0x9c8], 5
call fcn.00911ee2
lea ecx, [esp + 0x28]
mov byte [esp + 0x9c8], 4
call fcn.00911ee2
lea ecx, [esp + 0x3c]
mov byte [esp + 0x9c8], 3
call fcn.00911ee2
lea ecx, [esp + 0x48]
mov byte [esp + 0x9c8], 2
call fcn.00911ee2
lea ecx, [esp + 0x20]
mov byte [esp + 0x9c8], 1
call fcn.00911ee2
lea ecx, [esp + 0xc]
mov byte [esp + 0x9c8], 0
call fcn.00911ee2
lea ecx, [esp + 0x74]
mov dword [esp + 0x9c8], 0xffffffff
call fcn.00911ee2
mov ecx, dword [esp + 0x9c0]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4