Function at 0x45921e
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x62b65b
mov eax, dword fs:[0]
push eax
sub esp, 0x1c8
mov eax, dword [0x652018]
xor eax, esp
mov dword [esp + 0x1c0], eax
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x1d8]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x2c], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], ecx
mov ecx, edx
mov dword [esp + 0x48], eax
and ecx, 0x20
xor eax, eax
mov dword [esp + 0x60], ebx
or eax, ecx
mov byte [esp + 0x17], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x1f], 0
mov dword [esp + 0x40], 0
mov byte [esp + 0x3f], 1
jne 0x4592cc
mov byte [esp + 0x3f], 0
push ebx
push ecx
lea eax, [esp + 0x48]
and edx, 0xffffffdf
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x34], edx
push eax
lea eax, [esp + 0x58]
mov ecx, edi
push eax
lea eax, [esp + 0x2b]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0045900e
test eax, eax
jne 0x45a303
mov ecx, dword [esp + 0x34]
xor esi, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x20], eax
mov edx, dword [ecx]
cmp edx, 1
jne 0x459324
lea eax, [ecx + 0x1c]
mov dword [esp + 0x20], eax
jmp 0x45932d
test edx, edx
jne 0x45932d
mov byte [esp + 0x1f], 1
cmp dword [esp + 0x4c], esi
jne 0x45933d
cmp dword [esp + 0x40], esi
je 0x459675
test eax, eax
je 0x459675
cmp dword [ebp + 0x10], 8
jne 0x459675
push dword [esp + 0x58]
mov ecx, edi
call fcn.004629fe
mov ecx, dword [edi + 0xc]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov ecx, dword [ecx + 0xc]
mov eax, dword [esi]
mov ecx, dword [ecx + 0x3d8]
cmp eax, ecx
je 0x459395
test eax, eax
je 0x459568
test ecx, ecx
je 0x459568
mov eax, dword [eax - 0xc]
cmp eax, dword [ecx - 0xc]
sete al
test al, al
je 0x459568
cmp byte [esi + 8], 0
jne 0x459568
mov ecx, dword [esp + 0x48]
call 0x400a7e
test al, al
je 0x459568
mov ecx, dword [esp + 0x48]
call 0x3db3de
test al, al
jne 0x459568
push dword [edi + 0xc]
mov esi, dword [esp + 0x4c]
mov ecx, esi
call 0x3c4cce
mov ecx, eax
call 0x3e37ce
mov dword [esp + 0x54], eax
test eax, eax
jne 0x4593f9
push esi
push ebx
push 0x762b
mov ecx, edi
call fcn.0042201e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
movzx eax, byte [eax]
test byte [eax + eax*2 + 0x405210], 4
jne 0x459423
push 0x40bbf0
lea ecx, [esp + 0x68]
call 0x3c4c2e
push 0x651bb0
lea eax, [esp + 0x68]
push eax
call 0x5a4c84
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x44]
mov esi, dword [edi]
push 0
push eax
call 0x3c4cce
mov ecx, dword [esp + 0x5c]
push eax
call 0x3c4d6e
push eax
mov ecx, edi
call dword [esi + 8]
lea eax, [esp + 0x44]
mov ecx, edi
push eax
push dword [esp + 0x44]
call 0x3feefe
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x54]
mov ecx, esi
mov dword [esp + 0x30], eax
call 0x3c4d6e
movzx ecx, byte [eax]
test byte [ecx + ecx*2 + 0x405210], 4
je 0x459496
lea ecx, [esp + 0x1f]
push ecx
push dword [esp + 0x60]
mov ecx, eax
push 0
push 0
push ebx
push dword [esp + 0x44]
call 0x400dce
push eax
mov ecx, edi
call 0x3fc51e
mov ecx, dword [esp + 0x20]
cmp byte [esp + 0x1f], 0
jne 0x45a201
test esi, esi
je 0x459a74
mov eax, dword [esp + 0x24]
and eax, 0x100
mov dword [esp + 0x40], 0
or eax, 0
mov byte [esp + 0x5c], 0
jne 0x459514
mov ecx, esi
call 0x3db01e
test al, al
je 0x459514
mov ecx, esi
call 0x3c4c8e
test al, al
je 0x4596e5
lea eax, [esp + 0x5c]
mov ecx, esi
push eax
call 0x3c4cce
push eax
mov ecx, edi
call fcn.0047359e
mov ecx, eax
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4596e5
mov eax, dword [esp + 0x28]
or dword [esp + 0x24], 0x100
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
test edx, edx
je 0x459719
mov ecx, dword [esp + 0x48]
call 0x3e915e
test al, al
je 0x459715
mov ecx, dword [esp + 0x18]
call fcn.00458f3e
test al, al
je 0x459715
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
push dword [eax + 0x1c]
push ecx
push esi
push ebx
push ecx
mov ecx, edi
call fcn.00422a3e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov edx, dword [edi + 0x14c]
xor ecx, ecx
mov byte [esp + 0x53], 0
mov eax, 2
test edx, edx
je 0x4595b4
cmp byte [edx], 0xa
jne 0x4595b4
mov ecx, edx
call 0x3e9c7e
test eax, eax
je 0x4595ad
mov ecx, dword [edi + 0x14c]
call 0x3e9c7e
mov ecx, eax
call 0x3e9d4e
xor ecx, ecx
test al, al
je 0x4595af
mov eax, 0x200002
jmp 0x4595b4
xor ecx, ecx
mov eax, 2
cmp byte [esp + 0x3f], 0
je 0x4595c0
or eax, 0x1000000
push 0
lea edx, [esp + 0x57]
push edx
push dword [esp + 0x40]
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x2f]
push edx
push ebx
push dword [esp + 0x74]
push ecx
push eax
push dword [esp + 0x54]
mov ecx, edi
push dword [esp + 0x74]
push dword [esi]
call 0x3fcc8e
mov ecx, dword [esp + 0x40]
mov esi, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], esi
test eax, eax
je 0x45963a
test ecx, ecx
je 0x45963a
cmp byte [eax], 0x29
jne 0x45963a
cmp byte [ecx], 0x29
jne 0x45963a
sub esp, 0x10
lea edx, [edi + 0x6c]
mov eax, esp
mov byte [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x54]
call fcn.0041f36e
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x44], eax
test esi, esi
je 0x459496
cmp byte [esi], 0x2b
jne 0x459496
cmp dword [esi + 0x1c], 0
je 0x459496
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, edi
call 0x3feefe
mov eax, dword [esp + 0x30]
mov dword [esi + 0x20], eax
jmp 0x459496
cmp edx, 0x73
jne 0x459496
mov eax, ecx
mov eax, dword [eax + 0x1c]
mov ecx, eax
mov dword [esp + 0x54], eax
call 0x3c4d6e
mov dword [esp + 0x68], esi
lea edi, [esp + 0x88]
mov word [esp + 0x6c], si
mov ecx, 7
mov dword [esp + 0x78], esi
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], esi
lea esi, [esp + 0x64]
mov dword [esp + 0x64], eax
mov byte [esp + 0x6e], 0
mov dword [esp + 0x70], 0xfeefed
mov dword [esp + 0x74], 0xfeefed
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x88]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
jmp 0x45949a
cmp byte [esp + 0x17], 0
mov eax, dword [esp + 0x4c]
jne 0x4596f4
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x24]
mov ecx, edi
push dword [eax]
push ebx
push 0x77e3
call fcn.0042259e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x459760
mov cl, byte [esi]
movzx eax, cl
test byte [eax + eax*2 + 0x405210], 0x80
je 0x45973b
test byte [esi + 0x5c], 7
jne 0x459760
cmp cl, 0x1f
je 0x459760
mov eax, dword [esp + 0x20]
mov ecx, edi
push dword [eax]
push ebx
push 0x790e
call fcn.0042212e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov byte [esp + 0x30], 0
test edx, edx
jne 0x459806
cmp dword [esp + 0x40], edx
jne 0x459806
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x28]
call 0x3c4c8e
test al, al
je 0x459802
push 0
push 0x2000000
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.0040125e
test al, al
jne 0x459802
mov ecx, esi
call 0x3db01e
test al, al
jne 0x459802
movzx eax, byte [esi]
mov al, byte [eax + eax*2 + 0x405210]
test al, 0x20
je 0x4597be
test byte [esi + 1], 8
jne 0x459802
test al, al
jns 0x4597c8
test byte [esi + 0x5c], 7
je 0x459802
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x28]
call 0x3c4cce
push eax
mov ecx, edi
call fcn.0047359e
test eax, eax
je 0x459802
push dword [esp + 0x30]
mov ecx, edi
push 0
push 0
push eax
push dword [esp + 0x68]
push ebx
call fcn.0047377e
mov edx, eax
mov dword [esp + 0x34], edx
jmp 0x459806
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x204]
test ecx, ecx
je 0x4598da
cmp byte [esi], 0x1f
jne 0x4598da
test byte [esi + 0x8c], 0x20
je 0x4598da
test edx, edx
je 0x4598da
cmp word [edx], 0x5c
jne 0x4598da
mov eax, dword [edx + 0x28]
cmp eax, dword [ecx + 0x10]
jne 0x4598da
cmp dword [edi + 0x1d0], 0
je 0x459879
mov eax, dword [edi + 0xa0]
cmp eax, dword [ecx + 0x14]
je 0x459879
push dword [esi + 4]
mov ecx, edi
push ebx
push 0x8ec5
call fcn.0042212e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
cmp dword [ecx + 0xc], 1
jne 0x4598da
mov ebx, dword [ecx + 4]
xor eax, eax
mov dword [esp + 0x38], ebx
cmp ebx, eax
mov ebx, dword [esp + 0x60]
jbe 0x4598a1
mov ecx, dword [ecx + 8]
cmp dword [ecx], esi
je 0x4598a1
inc eax
add ecx, 0xc
cmp eax, dword [esp + 0x38]
jb 0x459893
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x204]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4 + 8]
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x45993d
push 0x40cb40
lea ecx, [esp + 0x68]
call 0x3c4c2e
push 0x651bb0
lea eax, [esp + 0x68]
push eax
call 0x5a4c84
push dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, edi
or eax, 0x800
push eax
push dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
push edx
push dword [eax + 4]
push esi
push ebx
call fcn.00462a7e
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x459939
push dword [esp + 0x5c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push eax
push ecx
push ebx
mov ecx, edi
call fcn.0047377e
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x4596e5
test byte [ecx + 2], 1
jne 0x4596e5
mov edx, dword [esp + 0x34]
cmp dword [edi + 0x204], 0
je 0x459a60
cmp byte [esi], 0x1f
jne 0x459a60
test byte [esi + 0x8c], 0x20
je 0x459a60
test edx, edx
je 0x459a60
cmp word [edx], 0x5c
jne 0x459a60
mov eax, dword [edx + 0x28]
mov edx, dword [edi + 0x204]
cmp eax, dword [edx + 0x10]
jne 0x459a60
cmp dword [edx + 0xc], 0
jne 0x459a60
cmp dword [edi + 0x1d0], 0
je 0x4599bf
mov eax, dword [edi + 0xa0]
cmp eax, dword [edx + 0x14]
je 0x4599bf
push dword [esi + 4]
mov ecx, edi
push ebx
push 0x8ec5
call fcn.0042212e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov ecx, dword [edx + 4]
xor eax, eax
mov dword [esp + 0x38], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x18]
jbe 0x459a02
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
add edx, 4
lea esp, [esp]
cmp dword [edx], esi
je 0x4599ee
inc eax
add edx, 0xc
cmp eax, dword [esp + 0x38]
jb 0x4599de
jmp 0x4599fc
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*2]
cmp dword [edx + eax*4 + 8], 0
jne 0x459a60
mov edx, dword [edi + 0x204]
mov eax, dword [ebx]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 8]
push 0
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0xc]
push 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x6c]
push eax
push 2
push dword [ecx + 0x1c]
mov ecx, dword [edx + 0x14]
call fcn.0048436e
push dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
or ecx, 0x800
push ecx
push dword [esp + 0x4c]
mov ecx, edi
push 0
push 0
push eax
push ebx
call fcn.00462a7e
mov ecx, dword [edi + 0x204]
push eax
push esi
call fcn.0048155e
mov esi, dword [esp + 0x18]
cmp byte [esp + 0x1f], 0
jne 0x45a201
jmp 0x45a301
mov eax, dword [ebp + 0x10]
cmp eax, 9
jne 0x459c6e
mov eax, dword [esp + 0x24]
and eax, 1
or eax, 0
je 0x459aa6
push ebx
push 0x756b
mov ecx, edi
call fcn.00421dae
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x1c]
call 0x3e941e
test al, al
je 0x459bf0
cmp byte [edi + 0x105], 0
mov ecx, edi
je 0x459add
push ebx
push 0x776e
call fcn.00421dae
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov eax, dword [edi + 0x10]
cmp dword [eax + 0x18], 2
jne 0x459afe
push ebx
push 0x782a
call fcn.00421dae
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
call fcn.0048153e
test al, al
je 0x459b14
push ebx
push 0xa421
mov ecx, edi
call fcn.00421dae
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
push ebx
push 0
push esi
push eax
push 0x59
mov ecx, edi
call fcn.004731ae
mov ecx, dword [edi + 0x210]
mov esi, eax
push 7
call fcn.0040300e
mov ecx, eax
mov dword [esi + 0x1c], eax
call 0x3db1de
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
push ebx
push 0
push esi
push eax
push 0x68
mov ecx, edi
call fcn.004731ae
mov esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esp + 0x38], eax
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459b7e
sub ecx, dword [esp + 0x38]
sar ecx, 1
push ebx
push ecx
push edx
mov ecx, edi
call fcn.00470a5e
lea ecx, [eax + 4]
push ecx
push 0
push eax
push 0x65e308
push 0x27
mov ecx, edi
call fcn.004731ae
lea ecx, [eax + 4]
push ecx
push 0
push eax
push 0x65e308
push 0x4f
mov ecx, edi
call fcn.004731ae
push 0
push 0x20
push dword [esp + 0x30]
mov dword [esi + 0x28], eax
push dword [esp + 0x30]
call fcn.0040125e
test al, al
je 0x459a60
push esi
mov ecx, edi
call fcn.00511d8e
mov dword [esp + 0x18], eax
jmp 0x459a60
mov ecx, dword [esi + 0x1c]
call fcn.004814fe
mov ecx, edi
test al, al
jne 0x459c1c
push dword [esi + 0x1c]
lea eax, [esi + 4]
push eax
push 0x7597
call fcn.0042201e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov eax, dword [esp + 0x20]
push 0
push 0x4000
push dword [eax + 4]
push esi
push ebx
call fcn.004703de
mov esi, eax
mov dword [esp + 0x18], esi
test byte [esi + 2], 1
jne 0x4593ec
mov ecx, esi
call fcn.0048162e
test al, al
jne 0x459b6c
push esi
lea eax, [esi + 4]
mov ecx, edi
push eax
push 0x775b
call fcn.00421f3e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov esi, dword [esp + 0x18]
test esi, esi
je 0x45a0fa
cmp eax, 8
jne 0x459e37
mov eax, dword [edi + 0xc]
mov ecx, dword [ecx]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x3a8]
call 0x3cc62e
test al, al
je 0x459cdf
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
test eax, eax
je 0x459cdf
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
push dword [edi + 0x10]
lea ecx, [edi + 0x6c]
mov edx, eax
push ecx
mov ecx, dword [esi + 0x1c]
call fcn.00482c5e
test al, al
jne 0x459e37
push 0
push 0x80000
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.0040125e
test al, al
jne 0x45a0fa
push esi
call fcn.0045a32e
test al, al
je 0x45a0fa
push 0
push 1
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.0040125e
test al, al
jne 0x459a8c
mov eax, dword [edi + 0x10]
mov ecx, edi
cmp dword [eax + 0x18], 2
je 0x459ae6
cmp byte [edi + 0x105], 0
jne 0x459ac5
call fcn.0048153e
test al, al
je 0x459d54
push ebx
push 0xa421
mov ecx, edi
call fcn.00421dae
mov ebx, dword [esi]
mov ecx, dword [edi + 0x210]
shr ebx, 0x12
push 7
not bl
call fcn.0040300e
push 1
push 0
push 0
push eax
push 0
push esi
mov ecx, edi
call fcn.0046ad3e
push eax
mov ecx, edi
call fcn.0046beee
mov ecx, dword [edi + 0x210]
mov esi, eax
push 7
call fcn.0040300e
push dword [esp + 0x60]
mov ecx, edi
push 0
push esi
push eax
push 0x5a
call fcn.004731ae
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
add ecx, 0xc
mov eax, dword [esp + 0x20]
push ecx
mov ecx, edi
mov esi, dword [eax]
movzx edx, word [esi - 4]
push edx
push esi
call fcn.00470a5e
mov esi, dword [esp + 0x38]
mov dword [esi + 0x2c], eax
and bl, 1
je 0x459dd5
mov eax, 0x8000
or word [esi + 2], ax
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
mov ebx, dword [esp + 0x60]
mov ecx, edi
push ebx
push 0
push esi
push eax
push 0x68
call fcn.004731ae
push 0
mov esi, eax
mov eax, dword [esp + 0x24]
push 0x4000
push dword [esp + 0x30]
mov eax, dword [eax + 4]
push dword [esp + 0x30]
mov dword [esi + 0x2c], eax
call fcn.0040125e
test al, al
jne 0x459a64
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x28]
push dword [esi + 0x28]
push esi
push ebx
call fcn.0046a52e
mov esi, eax
jmp 0x459a64
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x28]
push ebx
call fcn.0042e95e
test al, al
je 0x4593ec
mov ecx, dword [esi + 0x1c]
call 0x3e941e
test al, al
je 0x459e75
push ebx
push 0x79c0
mov ecx, edi
call fcn.00421dae
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov eax, dword [edi + 0x14]
mov dword [esp + 0x64], eax
mov eax, dword [ebx]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x17], 1
sub eax, 0xa
je 0x459f84
dec eax
je 0x459f05
dec eax
je 0x459f84
mov eax, dword [edi + 0xc]
mov ecx, edi
mov eax, dword [eax + 0xc]
push dword [eax + 0x3a8]
call fcn.0043343e
lea ecx, [edi + 0x6c]
mov esi, eax
call fcn.0041898e
push 0
mov edi, eax
push 0
push esi
mov ecx, edi
call 0x3dc1fe
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push 0
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push esi
push edi
push ebx
call fcn.00467f6e
mov ecx, 0x4000
or word [eax + 2], cx
jmp 0x45a303
mov esi, dword [edi + 0x10]
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
push esi
mov esi, dword [esp + 0x1c]
lea ecx, [edi + 0x6c]
push ecx
mov edx, eax
mov ecx, dword [esi + 0x1c]
call fcn.004814ae
mov ecx, edi
test al, al
je 0x459f69
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
push dword [eax + 0x514]
call fcn.0043343e
mov ecx, dword [esp + 0x34]
push 0
push 0x20
push 0
push 0
push 0
add ecx, 0xc
push eax
push ecx
mov ecx, edi
call fcn.00462a7e
mov dword [esp + 0x2c], eax
jmp 0x45a057
push dword [esi + 0x1c]
push ebx
push 0x8fc8
call fcn.0042201e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
mov esi, dword [edi + 0x10]
lea ecx, [edi + 0xa4]
push 0xfb
lea eax, [ecx + 0x18]
push eax
call fcn.0042dc9e
push esi
mov esi, dword [esp + 0x1c]
lea ecx, [edi + 0x6c]
push ecx
mov edx, eax
mov ecx, dword [esi + 0x1c]
call fcn.004814ae
test al, al
je 0x45a0d1
lea ecx, [edi + 0xa4]
push 0xfb
lea eax, [ecx + 0x18]
push eax
call fcn.0042dc9e
push eax
push dword [esi + 0x1c]
mov ecx, edi
call fcn.0041e46e
neg al
sbb al, al
not al
and al, byte [esp + 0x17]
cmp dword [ebp + 0x10], 0xa
mov cl, al
mov eax, dword [edi + 0xc]
mov byte [esp + 0x17], cl
mov eax, dword [eax + 0xc]
jne 0x459ff9
mov eax, dword [eax + 0x50c]
jmp 0x459fff
mov eax, dword [eax + 0x510]
test cl, cl
mov dword [esp + 0x2c], eax
lea ecx, [edi + 0xa4]
je 0x45a017
push 0xed
lea eax, [ecx + 0x44]
jmp 0x45a01f
push 0xfb
lea eax, [ecx + 0x18]
push eax
call fcn.0042dc9e
mov ecx, dword [esp + 0x34]
mov edx, eax
xor eax, eax
add ecx, 0xc
cmp byte [esp + 0x17], al
push 0
setne al
push 0
dec eax
and eax, esi
push eax
push dword [esp + 0x38]
push edx
push ecx
mov ecx, edi
call fcn.0046821e
cmp byte [esp + 0x17], 0
mov dword [esp + 0x2c], eax
je 0x45a083
push dword [esp + 0x34]
push ecx
push esi
lea ecx, [esp + 0x70]
call fcn.004e2f8e
add esp, 4
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xc
push 2
push eax
lea eax, [esp + 0x74]
push eax
call fcn.004e257e
add esp, 0x14
jmp 0x45a09b
mov ecx, dword [esp + 0x34]
push ecx
push 1
lea eax, [ecx + 0xc]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.004e257e
add esp, 0x10
push 0
push 0
push dword [esp + 0x30]
mov ecx, edi
push dword [esp + 0x30]
push eax
push 0
push dword [esp + 0x44]
push ebx
call fcn.004674be
cmp byte [esp + 0x17], 0
mov esi, eax
je 0x459a64
mov eax, 0x4000
or word [esi + 2], ax
jmp 0x459a64
push dword [esi + 0x1c]
xor eax, eax
mov ecx, edi
cmp dword [ebp + 0x10], 0xa
push ebx
setne al
lea eax, [eax*2 + 0x8fc7]
push eax
call fcn.0042201e
push ebx
mov ecx, edi
call fcn.0047334e
jmp 0x45a303
cmp byte [esp + 0x17], 0
mov eax, dword [edi + 0xc]
mov esi, dword [eax + 0xc]
je 0x45a13b
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 0x8c]
mov ecx, dword [eax + 4]
call 0x3cc62e
test al, al
je 0x45a13b
push dword [esi + 0x45c]
mov eax, dword [esp + 0x24]
mov ecx, edi
push dword [eax]
push ebx
push 0x76f8
call fcn.0042242e
jmp 0x45a1fc
mov esi, dword [esp + 0x48]
mov ecx, esi
call 0x3dd26e
mov ecx, eax
call 0x3da3ae
test al, al
je 0x45a1b1
push ecx
lea ecx, [esp + 0xa8]
call fcn.0041538e
mov dword [esp + 0x1e0], 0
lea eax, [esp + 0xa4]
push eax
push 0x404
call fcn.0042878e
mov eax, dword [esp + 0x28]
add esp, 8
mov ecx, edi
push dword [esp + 0xc0]
push dword [eax]
push ebx
push 0x8ecd
call fcn.0042242e
mov dword [esp + 0x1e0], 0xffffffff
lea ecx, [esp + 0xa4]
call 0x3cc30e
jmp 0x45a1fc
mov ecx, esi
call 0x3dd26e
mov ecx, eax
call fcn.00482eee
test al, al
mov eax, dword [esp + 0x4c]
je 0x45a1df
cmp byte [esp + 0x17], 0
jne 0x45a1d0
mov eax, esi
push eax
mov eax, dword [esp + 0x24]
push dword [eax]
push ebx
push 0x7918
jmp 0x45a1f5
cmp byte [esp + 0x17], 0
jne 0x45a1e8
mov eax, esi
push eax
mov eax, dword [esp + 0x24]
push dword [eax]
push ebx
push 0x76f8
mov ecx, edi
call fcn.0042259e
mov byte [esp + 0x1f], 1
mov esi, dword [esp + 0x54]
mov ecx, esi
call 0x3c4d6e
cmp byte [edi + 0x107], 0
mov dword [esp + 0x38], eax
je 0x45a2bd
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45a229
mov ecx, dword [eax]
jmp 0x45a22b
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x70]
push 0x50
call 0x3bcd8e
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
and byte [ecx + 1], 0xfe
mov dword [ecx + 0x28], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov al, byte [ecx + 0x4a]
and al, 0xfe
mov byte [ecx], 4
or al, 4
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x30], 0
mov word [ecx + 0x48], 0x1600
mov byte [ecx + 0x4a], al
mov dword [ecx + 0x24], 0
test esi, esi
je 0x45a2a2
mov ecx, esi
call 0x3dd2de
mov ecx, dword [esp + 0x30]
test al, al
je 0x45a2a2
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x2c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x30]
mov dword [ecx + 0x30], eax
push 0
push ebx
push dword [esp + 0x60]
push 0x65e308
push ecx
mov ecx, edi
call fcn.004733ae
or word [eax + 2], 1
jmp 0x45a303
push 0x2c
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov esi, eax
mov eax, 0x2c
mov word [esi], ax
mov ecx, dword [ebx]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], 0x65e308
call 0x3db1de
mov dword [esi + 0x14], eax
or word [esi + 2], 1
mov eax, esi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call 0x59f18f
mov esp, ebp
pop ebp
ret 0x1c