Function at 0x45ece0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4acd52
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x998
mov eax, dword [0x4d3804]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x998], ecx
lea ecx, [ebp - 0x48]
call fcn.00463db0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00463db0
mov byte [ebp - 4], 1
push 1
lea eax, [ebp - 0x4fc]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x998]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xc]
mov edx, dword [edx]
call dword [edx + 4]
test eax, eax
je 0x45ed85
mov dword [ebp - 0x97c], 0x57
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x97c]
jmp 0x45fe74
mov ecx, dword [ebp - 0x998]
add ecx, 0x1c
call fcn.0046a370
push 0x200
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x26c]
push ecx
call fcn.0047c290
add esp, 0xc
lea ecx, [ebp - 0x2dc]
call fcn.00441560
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x998]
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax]
call dword [edx + 0x1c]
push eax
lea ecx, [ebp - 0x2dc]
call fcn.00444670
push eax
lea ecx, [ebp - 0x2d4]
call fcn.0040b8f0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x998]
mov ecx, dword [ebp - 0x2d0]
mov dword [eax + 0xec], ecx
lea edx, [ebp - 0x26c]
push edx
mov ecx, dword [ebp - 0x998]
call fcn.004601f0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x45ee6d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x980], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x980]
jmp 0x45fe74
mov ecx, dword [ebp - 0x998]
call fcn.004605e0
mov ecx, dword [ebp - 0x998]
add ecx, 0xf0
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0xf0]
call dword [eax + 0xc]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x504], eax
jne 0x45eef2
mov dword [ebp - 0x984], 0x57
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x984]
jmp 0x45fe74
mov ecx, dword [ebp - 0x998]
call fcn.004612d0
mov dword [ebp - 0x270], eax
push 2
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d310
mov ecx, dword [ebp - 0x270]
xor edx, edx
push edx
push ecx
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d340
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d3a0
push 0
push 0
push 1
mov ecx, dword [ebp - 0x998]
call fcn.00461490
test eax, eax
jne 0x45ef9f
mov dword [ebp - 0x988], 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x988]
jmp 0x45fe74
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xc8]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0xd0]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x48]
call fcn.00463f60
lea ecx, [ebp - 0x38]
call fcn.00406ad0
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x998]
mov eax, dword [ebp - 0x998]
mov ecx, dword [edx + 0xd0]
imul ecx, dword [eax + 0x18]
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x998]
mov eax, dword [ebp - 0x998]
mov ecx, dword [edx + 0xb0]
imul ecx, dword [eax + 0x18]
mov dword [ebp - 0x2f8], ecx
mov edx, dword [ebp - 0x274]
cmp edx, dword [ebp - 0x2f8]
jge 0x45f032
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x274]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00406b20
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x45f0a7
mov dword [ebp - 0x98c], 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.00406b00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x98c]
jmp 0x45fe74
mov dword [ebp - 0x500], 1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2e0], 0
lea ecx, [ebp - 0x64]
call fcn.004325e0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0x18]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xe8]
xor edx, edx
push edx
push ecx
lea ecx, [ebp - 0x64]
call fcn.00432640
mov eax, 1
test eax, eax
je 0x45fe02
mov dword [ebp - 0x508], 0
jmp 0x45f12d
mov ecx, dword [ebp - 0x508]
add ecx, 1
mov dword [ebp - 0x508], ecx
lea ecx, [ebp - 0x48]
call fcn.00447160
cmp dword [ebp - 0x508], eax
jae 0x45fdca
mov edx, dword [ebp - 0x508]
push edx
lea ecx, [ebp - 0x48]
call fcn.00465f60
mov ecx, dword [eax]
mov dword [ebp - 0x518], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x514], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x510], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x50c], edx
mov dword [ebp - 0x51c], 0
jmp 0x45f18e
mov eax, dword [ebp - 0x51c]
add eax, 1
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0x3e8
jge 0x45fd92
cmp dword [ebp - 0x500], 0
je 0x45f1b6
mov ecx, dword [ebp - 0x998]
cmp dword [ecx + 0xec], 0xb
jne 0x45f22a
mov eax, dword [ebp - 0x510]
xor edx, edx
mov ecx, dword [ebp - 0x998]
sub eax, dword [ecx + 0xd8]
sbb edx, dword [ecx + 0xdc]
mov ecx, dword [ebp - 0x998]
xor edx, edx
div dword [ecx + 0xb0]
add eax, 2
mov dword [ebp - 0x524], eax
mov edx, dword [ebp - 0x524]
xor eax, eax
push eax
push edx
lea ecx, [ebp - 0x64]
call fcn.00432810
test eax, eax
je 0x45f202
jmp 0x45fd92
push 1
mov ecx, dword [ebp - 0x524]
xor edx, edx
push edx
push ecx
lea ecx, [ebp - 0x64]
call fcn.00432740
movzx eax, byte [ebp - 0x518]
test eax, eax
jne 0x45f22a
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x50c]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x510]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0xc]
mov edx, dword [ecx]
mov ecx, eax
call dword [edx + 4]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x45f266
jmp 0x45fd92
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x528], 0
jmp 0x45f299
mov ecx, dword [ebp - 0x528]
add ecx, 1
mov dword [ebp - 0x528], ecx
mov edx, dword [ebp - 0x520]
add edx, 0x20
mov dword [ebp - 0x520], edx
mov eax, dword [ebp - 0x50c]
imul eax, dword [ebp - 0x18]
cmp dword [ebp - 0x528], eax
jae 0x45fc78
cmp dword [ebp - 0x500], 0
jne 0x45f32c
cmp dword [ebp - 0x51c], 0
jne 0x45f32c
cmp dword [ebp - 0x528], 0
jne 0x45f2f0
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx]
cmp edx, 0x2e
jne 0x45f2e9
mov eax, dword [ebp - 0x520]
movzx ecx, byte [eax + 1]
cmp ecx, 0x20
jne 0x45f2e9
jmp 0x45f2ee
jmp 0x45fd92
jmp 0x45f32c
cmp dword [ebp - 0x528], 1
jne 0x45f32c
mov edx, dword [ebp - 0x520]
movzx eax, byte [edx]
cmp eax, 0x2e
jne 0x45f327
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx + 1]
cmp edx, 0x2e
jne 0x45f327
mov eax, dword [ebp - 0x520]
movzx ecx, byte [eax + 2]
cmp ecx, 0x20
jne 0x45f327
jmp 0x45f32c
jmp 0x45fd92
mov edx, dword [ebp - 0x520]
movzx eax, byte [edx]
test eax, eax
je 0x45f373
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx]
cmp edx, 0x20
je 0x45f373
mov eax, dword [ebp - 0x520]
movzx ecx, byte [eax]
cmp ecx, 0x2e
je 0x45f373
mov edx, dword [ebp - 0x520]
movzx eax, byte [edx + 0xb]
cmp eax, 0xf
je 0x45f388
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx + 0xb]
and edx, 8
je 0x45f388
mov eax, dword [ebp - 0x998]
mov dword [eax + 0x308], 0
jmp 0x45f27b
mov ecx, dword [ebp - 0x520]
push ecx
mov ecx, dword [ebp - 0x998]
call fcn.004627b0
test eax, eax
jne 0x45f3b3
mov edx, dword [ebp - 0x998]
mov dword [edx + 0x308], 0
jmp 0x45f27b
mov eax, dword [ebp - 0x520]
movzx ecx, byte [eax + 0xb]
cmp ecx, 0xf
je 0x45f3fe
mov edx, dword [ebp - 0x520]
movzx eax, word [edx + 0x14]
shl eax, 0x10
mov ecx, dword [ebp - 0x520]
movzx edx, word [ecx + 0x1a]
or eax, edx
mov ecx, dword [ebp - 0x998]
cmp eax, dword [ecx + 0xe8]
jb 0x45f3fe
mov edx, dword [ebp - 0x998]
mov dword [edx + 0x308], 0
jmp 0x45f27b
mov eax, dword [ebp - 0x520]
movzx ecx, byte [eax + 0xb]
cmp ecx, 0xf
jne 0x45f5f6
mov edx, dword [ebp - 0x520]
movzx eax, byte [edx]
cmp eax, 0xe5
jne 0x45f448
mov ecx, dword [ebp - 0x998]
movzx edx, byte [ecx + 0xfc]
cmp edx, 0xe5
je 0x45f448
mov eax, dword [ebp - 0x998]
mov dword [eax + 0x308], 0
jmp 0x45f47e
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx]
cmp edx, 0xe5
je 0x45f47e
mov eax, dword [ebp - 0x998]
movzx ecx, byte [eax + 0xfc]
cmp ecx, 0xe5
jne 0x45f47e
mov edx, dword [ebp - 0x998]
mov dword [edx + 0x308], 0
mov eax, dword [ebp - 0x998]
cmp dword [eax + 0x308], 0x14
jl 0x45f49d
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0x308], 0
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0x308]
imul eax, eax, 0xd
mov ecx, dword [ebp - 0x998]
lea edx, [ecx + eax*2 + 0xfe]
mov dword [ebp - 0x534], edx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x1e]
mov word [eax], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x1c]
mov word [eax + 2], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x18]
mov word [eax + 4], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x16]
mov word [eax + 6], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x14]
mov word [eax + 8], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x12]
mov word [eax + 0xa], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x10]
mov word [eax + 0xc], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0xe]
mov word [eax + 0xe], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 9]
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 7]
mov word [eax + 0x12], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 5]
mov word [eax + 0x14], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 3]
mov word [eax + 0x16], dx
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 1]
mov word [eax + 0x18], dx
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0x308]
add ecx, 1
mov edx, dword [ebp - 0x998]
mov dword [edx + 0x308], ecx
mov eax, dword [ebp - 0x998]
mov ecx, dword [ebp - 0x520]
mov dl, byte [ecx]
mov byte [eax + 0xfc], dl
jmp 0x45f27b
mov eax, dword [ebp - 0x998]
cmp dword [eax + 0x308], 0
je 0x45f715
push 0x208
push 0
mov ecx, dword [ebp - 0x998]
add ecx, 0x30c
push ecx
call fcn.0047ca40
add esp, 0xc
mov edx, dword [ebp - 0x998]
mov eax, dword [edx + 0x308]
imul eax, eax, 0xd
mov dword [ebp - 0x538], eax
push 0x410
push 0
lea ecx, [ebp - 0x94c]
push ecx
call fcn.0047ca40
add esp, 0xc
mov dword [ebp - 0x954], 0
jmp 0x45f66b
mov edx, dword [ebp - 0x954]
add edx, 1
mov dword [ebp - 0x954], edx
mov eax, dword [ebp - 0x954]
cmp eax, dword [ebp - 0x538]
jge 0x45f6a3
mov ecx, dword [ebp - 0x538]
sub ecx, dword [ebp - 0x954]
mov edx, dword [ebp - 0x954]
mov eax, dword [ebp - 0x998]
mov dx, word [eax + edx*2 + 0xfe]
mov word [ebp + ecx*2 - 0x94e], dx
jmp 0x45f65c
mov dword [ebp - 0x950], 0x4b7c84
mov dword [ebp - 0x53c], 1
lea eax, [ebp - 0x53c]
push eax
mov ecx, dword [ebp - 0x950]
push ecx
push 0x207
mov edx, dword [ebp - 0x998]
add edx, 0x30c
push edx
mov eax, dword [ebp - 0x538]
push eax
lea ecx, [ebp - 0x94c]
push ecx
push 0x200
push 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov edx, dword [ebp - 0x998]
add edx, 0x30c
push edx
mov ecx, dword [ebp - 0x998]
call fcn.00462d40
test eax, eax
jne 0x45f710
jmp 0x45f715
jmp 0x45f883
push 0x208
push 0
mov eax, dword [ebp - 0x998]
add eax, 0x30c
push eax
call fcn.0047ca40
add esp, 0xc
mov dword [ebp - 0x958], 0
jmp 0x45f74b
mov ecx, dword [ebp - 0x958]
add ecx, 1
mov dword [ebp - 0x958], ecx
cmp dword [ebp - 0x958], 8
jge 0x45f78a
mov edx, dword [ebp - 0x520]
add edx, dword [ebp - 0x958]
movzx eax, byte [edx]
cmp eax, 0x20
je 0x45f78a
mov ecx, dword [ebp - 0x998]
add ecx, dword [ebp - 0x958]
mov edx, dword [ebp - 0x520]
add edx, dword [ebp - 0x958]
mov al, byte [edx]
mov byte [ecx + 0x30c], al
jmp 0x45f73c
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx + 8]
cmp edx, 0x20
je 0x45f82f
mov eax, dword [ebp - 0x998]
add eax, dword [ebp - 0x958]
mov byte [eax + 0x30c], 0x2e
mov dword [ebp - 0x95c], 0
jmp 0x45f7cb
mov ecx, dword [ebp - 0x95c]
add ecx, 1
mov dword [ebp - 0x95c], ecx
cmp dword [ebp - 0x95c], 3
jge 0x45f813
mov edx, dword [ebp - 0x520]
add edx, dword [ebp - 0x95c]
movzx eax, byte [edx + 8]
cmp eax, 0x20
je 0x45f813
mov ecx, dword [ebp - 0x95c]
add ecx, dword [ebp - 0x958]
mov edx, dword [ebp - 0x520]
add edx, dword [ebp - 0x95c]
mov eax, dword [ebp - 0x998]
mov dl, byte [edx + 8]
mov byte [eax + ecx + 0x30d], dl
jmp 0x45f7bc
mov eax, dword [ebp - 0x95c]
add eax, dword [ebp - 0x958]
mov ecx, dword [ebp - 0x998]
mov byte [ecx + eax + 0x30d], 0
jmp 0x45f842
mov edx, dword [ebp - 0x998]
add edx, dword [ebp - 0x958]
mov byte [edx + 0x30c], 0
mov eax, dword [ebp - 0x998]
movzx ecx, byte [eax + 0x30c]
cmp ecx, 0xe5
jne 0x45f864
mov edx, dword [ebp - 0x998]
mov byte [edx + 0x30c], 0x5f
mov eax, dword [ebp - 0x998]
movzx ecx, byte [eax + 0x30c]
cmp ecx, 5
jne 0x45f883
mov edx, dword [ebp - 0x998]
mov byte [edx + 0x30c], 0xe5
mov eax, dword [ebp - 0x998]
mov byte [eax + 0xfc], 0
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0x308], 0
mov edx, dword [ebp - 0x520]
cmp dword [edx + 0x1c], 0x80000000
jbe 0x45f8b4
jmp 0x45f27b
mov eax, dword [ebp - 0x998]
add eax, 0x30c
push eax
call fcn.0047c670
add esp, 4
push eax
mov ecx, dword [ebp - 0x998]
add ecx, 0x1c
call fcn.0045a130
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jne 0x45f94f
mov dword [ebp - 0x990], 8
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x64]
call fcn.00432620
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.00406b00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x990]
jmp 0x45fe74
mov ecx, dword [ebp - 0x52c]
mov dword [ebp - 0x530], ecx
mov edx, dword [ebp - 0x530]
mov word [edx], 0x9f
mov eax, dword [ebp - 0x998]
add eax, 0x30c
push eax
mov ecx, dword [ebp - 0x530]
mov edx, dword [ecx + 2]
push edx
call fcn.0047d160
add esp, 8
mov eax, dword [ebp - 0x530]
mov ecx, dword [ebp - 0x514]
mov dword [eax + 0x26], ecx
mov edx, dword [ebp - 0x520]
movzx eax, word [edx + 0x14]
shl eax, 0x10
mov ecx, dword [ebp - 0x530]
mov dword [ecx + 0x2a], eax
mov edx, dword [ebp - 0x520]
movzx eax, word [edx + 0x1a]
mov ecx, dword [ebp - 0x530]
or eax, dword [ecx + 0x2a]
mov edx, dword [ebp - 0x530]
mov dword [edx + 0x2a], eax
mov eax, dword [ebp - 0x530]
mov ecx, dword [ebp - 0x530]
mov edx, dword [ecx + 0x2a]
mov dword [eax + 0x22], edx
mov eax, dword [ebp - 0x520]
mov ecx, dword [eax + 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x530]
mov dword [eax + 6], ecx
mov dword [eax + 0xa], edx
mov ecx, dword [ebp - 0x520]
movzx dx, byte [ecx + 0xb]
mov eax, dword [ebp - 0x530]
mov word [eax + 0x1e], dx
mov ecx, dword [ebp - 0x530]
cmp dword [ecx + 0x2a], 2
jb 0x45fa4a
mov edx, dword [ebp - 0x530]
mov eax, dword [edx + 0x2a]
sub eax, 2
mov ecx, dword [ebp - 0x998]
imul eax, dword [ecx + 0xb0]
xor edx, edx
mov ecx, dword [ebp - 0x998]
add eax, dword [ecx + 0xd8]
adc edx, dword [ecx + 0xdc]
mov ecx, dword [ebp - 0x530]
mov dword [ecx + 0xe], eax
mov dword [ecx + 0x12], edx
jmp 0x45fa68
mov edx, dword [ebp - 0x530]
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xd8]
mov dword [edx + 0xe], ecx
mov eax, dword [eax + 0xdc]
mov dword [edx + 0x12], eax
mov ecx, dword [ebp - 0x530]
add ecx, 0xe
push ecx
mov edx, dword [ebp - 0x520]
mov ax, word [edx + 0xe]
push eax
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x10]
push edx
call dword [sym.imp.kernel32.dll_DosDateTimeToFileTime]
mov eax, dword [ebp - 0x530]
add eax, 0x16
push eax
mov ecx, dword [ebp - 0x520]
mov dx, word [ecx + 0x16]
push edx
mov eax, dword [ebp - 0x520]
mov cx, word [eax + 0x18]
push ecx
call dword [sym.imp.kernel32.dll_DosDateTimeToFileTime]
mov edx, dword [ebp - 0x520]
movzx eax, byte [edx]
cmp eax, 0xe5
jne 0x45fad0
mov ecx, dword [ebp - 0x530]
mov byte [ecx + 0x20], 2
jmp 0x45fada
mov edx, dword [ebp - 0x530]
mov byte [edx + 0x20], 1
mov eax, dword [ebp - 0x530]
movzx ecx, word [eax + 0x1e]
and ecx, 0x10
je 0x45fbad
mov edx, dword [ebp - 0x530]
mov eax, dword [edx + 0x22]
mov dword [ebp - 0x968], eax
mov ecx, dword [ebp - 0x530]
mov edx, dword [ecx + 0x22]
sub edx, 2
mov eax, dword [ebp - 0x998]
imul edx, dword [eax + 0xb0]
mov ecx, dword [ebp - 0x998]
mov eax, dword [ecx + 0xd8]
add edx, eax
mov dword [ebp - 0x964], edx
mov ecx, dword [ebp - 0x998]
mov edx, dword [ecx + 0xb0]
mov dword [ebp - 0x960], edx
movzx eax, byte [ebp - 0x518]
test eax, eax
jne 0x45fb5e
mov ecx, dword [ebp - 0x530]
movzx edx, byte [ecx + 0x20]
cmp edx, 2
je 0x45fb5e
mov byte [ebp - 0x999], 0
jmp 0x45fb65
mov byte [ebp - 0x999], 1
mov al, byte [ebp - 0x999]
mov byte [ebp - 0x96c], al
mov ecx, dword [ebp - 0x968]
xor edx, edx
push edx
push ecx
lea ecx, [ebp - 0x64]
call fcn.00432810
test eax, eax
jne 0x45fb99
lea eax, [ebp - 0x96c]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.00463f60
mov ecx, dword [ebp - 0x2f4]
add ecx, 1
mov dword [ebp - 0x2f4], ecx
jmp 0x45fc73
mov edx, dword [ebp - 0x530]
movzx eax, byte [edx + 0x20]
and eax, 2
jne 0x45fc64
movzx ecx, byte [ebp - 0x518]
test ecx, ecx
jne 0x45fc64
mov edx, dword [ebp - 0x998]
mov eax, dword [ebp - 0x998]
mov ecx, dword [edx + 0xb0]
imul ecx, dword [eax + 0x18]
mov eax, ecx
cdq
mov ecx, dword [ebp - 0x530]
push edx
push eax
mov edx, dword [ecx + 0xa]
push edx
mov eax, dword [ecx + 6]
push eax
call fcn.0047de80
mov dword [ebp - 0x970], eax
mov ecx, dword [ebp - 0x998]
mov edx, dword [ebp - 0x998]
mov eax, dword [ecx + 0xb0]
imul eax, dword [edx + 0x18]
cdq
mov ecx, dword [ebp - 0x530]
push edx
push eax
mov edx, dword [ecx + 0xa]
push edx
mov eax, dword [ecx + 6]
push eax
call fcn.0047ddc0
mov dword [ebp - 0x9a4], eax
mov dword [ebp - 0x9a0], edx
mov ecx, dword [ebp - 0x9a4]
or ecx, dword [ebp - 0x9a0]
je 0x45fc58
mov edx, dword [ebp - 0x970]
add edx, 1
mov dword [ebp - 0x970], edx
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x970]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x2e0]
add ecx, 1
mov dword [ebp - 0x2e0], ecx
jmp 0x45f27b
cmp dword [ebp - 0x500], 0
je 0x45fc94
mov edx, dword [ebp - 0x998]
cmp dword [edx + 0xec], 0xb
jne 0x45fd8b
mov eax, dword [ebp - 0x998]
mov ecx, dword [eax + 0xd8]
mov eax, dword [ebp - 0x510]
sub eax, ecx
mov ecx, dword [ebp - 0x998]
xor edx, edx
div dword [ecx + 0xb0]
add eax, 2
mov dword [ebp - 0x978], eax
mov edx, dword [ebp - 0x978]
push edx
mov ecx, dword [ebp - 0x998]
call fcn.004611c0
mov dword [ebp - 0x974], eax
cmp dword [ebp - 0x974], 2
jb 0x45fcf4
mov eax, dword [ebp - 0x998]
mov ecx, dword [ebp - 0x974]
cmp ecx, dword [eax + 0xe8]
jb 0x45fcf9
jmp 0x45fd92
mov edx, dword [ebp - 0x998]
cmp dword [edx + 0xec], 1
jne 0x45fd16
cmp dword [ebp - 0x974], 0xff7
jb 0x45fd16
jmp 0x45fd92
mov eax, dword [ebp - 0x998]
cmp dword [eax + 0xec], 6
jne 0x45fd33
cmp dword [ebp - 0x974], 0xfff7
jb 0x45fd33
jmp 0x45fd92
mov ecx, dword [ebp - 0x998]
cmp dword [ecx + 0xec], 0xb
jne 0x45fd4d
cmp dword [ebp - 0x974], 0xfffffff7
jb 0x45fd4d
jmp 0x45fd92
mov edx, dword [ebp - 0x974]
sub edx, 2
mov eax, dword [ebp - 0x998]
imul edx, dword [eax + 0xb0]
mov ecx, dword [ebp - 0x998]
mov eax, dword [ecx + 0xd8]
add edx, eax
mov dword [ebp - 0x510], edx
mov ecx, dword [ebp - 0x998]
mov edx, dword [ecx + 0xb0]
mov dword [ebp - 0x50c], edx
jmp 0x45fd8d
jmp 0x45fd92
jmp 0x45f17f
mov dword [ebp - 0x500], 0
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
push ecx
push eax
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d370
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d3e0
test eax, eax
je 0x45fdc5
jmp 0x45fe02
jmp 0x45f11e
lea ecx, [ebp - 0x48]
call fcn.00466010
lea ecx, [ebp - 0x2f0]
call fcn.00447160
test eax, eax
ja 0x45fde3
jmp 0x45fe02
lea edx, [ebp - 0x2f0]
push edx
lea ecx, [ebp - 0x48]
call fcn.00463de0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
jmp 0x45f105
mov ecx, dword [ebp - 0x998]
add ecx, 4
call fcn.0046d3c0
mov dword [ebp - 0x994], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x64]
call fcn.00432620
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.00406b00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d4]
call fcn.0040b9b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2dc]
call fcn.00441580
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f0]
call fcn.00466010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.00466010
mov eax, dword [ebp - 0x994]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x68]
call fcn.0047bda9
mov esp, ebp
pop ebp
ret