Function at 0x456100
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x480ce8
mov eax, dword fs:[0]
push eax
sub esp, 0x354
mov eax, dword [0x40a5d4]
xor eax, esp
mov dword [esp + 0x350], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x40a5d4]
xor eax, esp
push eax
lea eax, [esp + 0x368]
mov dword fs:[0], eax
mov edi, dword [esp + 0x378]
mov esi, dword [esp + 0x37c]
xor eax, eax
or ebp, 0xffffffff
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x370], eax
call fcn.0045d4c0
xor eax, eax
mov ebx, 0xf
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], eax
mov byte [esp + 0x128], al
push eax
push 0x40cee7
lea ecx, [esp + 0x148]
mov byte [esp + 0x378], 2
mov dword [esp + 0x160], ebx
mov dword [esp + 0x15c], eax
mov byte [esp + 0x14c], al
call fcn.0043c530
push 1
push esi
lea ecx, [esp + 0x30]
mov byte [esp + 0x378], 3
call fcn.00446900
test al, al
jne 0x45625b
mov esi, 0x10
cmp dword [esp + 0x158], esi
jb 0x4561f7
mov eax, dword [esp + 0x144]
push eax
call fcn.0046d54d
add esp, 4
xor edi, edi
mov dword [esp + 0x158], ebx
mov dword [esp + 0x154], edi
mov byte [esp + 0x144], 0
cmp dword [esp + 0x13c], esi
jb 0x456228
mov ecx, dword [esp + 0x128]
push ecx
call fcn.0046d54d
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], edi
mov byte [esp + 0x128], 0
mov byte [esp + 0x370], 0
call fcn.0045d4d0
mov dword [esp + 0x370], ebp
jmp 0x456f9a
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push 0
push edx
push eax
lea ecx, [esp + 0x64]
call fcn.0045d880
test al, al
jne 0x4562cd
lea ecx, [esp + 0x28]
call fcn.004468b0
mov esi, 0x10
cmp dword [esp + 0x158], esi
jb 0x45629b
mov ecx, dword [esp + 0x144]
push ecx
call fcn.0046d54d
add esp, 4
xor edi, edi
mov dword [esp + 0x158], ebx
mov dword [esp + 0x154], edi
mov byte [esp + 0x144], 0
cmp dword [esp + 0x13c], esi
jb 0x456228
mov edx, dword [esp + 0x128]
push edx
jmp 0x456220
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x10], 0
jne 0x4562ec
push 0x40d7bc
push 0x412
push edi
call fcn.00447f50
add esp, 0xc
jmp 0x45627d
mov ecx, dword [esp + 0x380]
mov eax, dword [esp + 0x64]
test ecx, ecx
jne 0x456308
mov ecx, dword [eax + 0x34]
add ecx, dword [eax + 0x28]
mov dword [esp + 0x380], ecx
cmp dword [esp + 0x384], 0
je 0x45631c
add ecx, dword [eax + 0x34]
mov dword [esp + 0x380], ecx
sub ecx, dword [eax + 0x34]
push ecx
lea ecx, [esp + 0x5c]
call fcn.0045d4e0
mov dword [esp + 0x18], eax
cmp eax, ebp
jne 0x456348
push 0x483fcc
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], 1
call fcn.0046d745
mov ecx, dword [0x486898]
sub ecx, dword [0x486894]
test ecx, 0xfffffffc
jne 0x456399
mov edx, dword [esp + 0x24]
push 8
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.004518d0
add esp, 0x10
push eax
mov ecx, 0x486888
mov byte [esp + 0x374], 4
call fcn.004417e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x370], 3
call fcn.0044bd70
mov ecx, dword [0x4867f0]
sub ecx, dword [0x4867ec]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, 0x10
jne 0x45672d
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.004475c0
add esp, 8
push eax
mov ecx, 0x4867e0
mov byte [esp + 0x374], 5
call fcn.00455dd0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x370], 3
call fcn.004464f0
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x4867e0
call fcn.00445260
mov ecx, dword [eax]
mov dword [0x487578], ecx
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x4867e0
mov dword [0x48757c], edx
call fcn.00445260
mov ecx, dword [eax]
mov dword [0x487578], ecx
mov edx, dword [eax + 4]
mov dword [0x48757c], edx
jmp 0x456440
mov eax, dword [0x4867f0]
mov esi, eax
cmp dword [0x4867ec], eax
jbe 0x456454
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x456465
cmp eax, dword [0x4867e0]
je 0x45646a
call fcn.0046d6b5
cmp dword [0x48757c], esi
je 0x45672d
mov ecx, 0x487578
call fcn.0044b240
mov esi, eax
mov edi, dword [esi + 0x18]
add esi, 0xc
cmp edi, dword [esi + 0x10]
jbe 0x456492
call fcn.0046d6b5
mov eax, dword [esi]
mov dword [0x4867a8], eax
mov dword [0x4867ac], edi
nop
mov eax, dword [0x487578]
test eax, eax
jne 0x4564b7
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x4564bb
mov eax, dword [eax]
jmp 0x4564bd
xor eax, eax
mov ecx, dword [0x48757c]
cmp ecx, dword [eax + 0x10]
jb 0x4564cd
call fcn.0046d6b5
mov esi, dword [0x48757c]
mov edi, dword [esi + 0x1c]
add esi, 0xc
cmp dword [esi + 0xc], edi
jbe 0x4564e3
call fcn.0046d6b5
mov eax, dword [0x4867a8]
mov esi, dword [esi]
test eax, eax
je 0x4564f2
cmp eax, esi
je 0x4564f7
call fcn.0046d6b5
cmp dword [0x4867ac], edi
je 0x4566f4
mov esi, dword [0x486894]
cmp esi, dword [0x486898]
jbe 0x456516
call fcn.0046d6b5
mov ebp, dword [0x486888]
mov edi, esi
mov edi, edi
mov esi, dword [0x486898]
cmp dword [0x486894], esi
jbe 0x456533
call fcn.0046d6b5
test ebp, ebp
je 0x45653f
cmp ebp, dword [0x486888]
je 0x456544
call fcn.0046d6b5
cmp edi, esi
je 0x4566bc
mov eax, dword [0x4867a8]
test eax, eax
jne 0x456563
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x456567
mov eax, dword [eax]
jmp 0x456569
xor eax, eax
mov edx, dword [0x4867ac]
cmp edx, dword [eax + 0x10]
jb 0x456579
call fcn.0046d6b5
mov eax, dword [0x4867ac]
cmp dword [eax], 0
je 0x45662d
mov esi, dword [esp + 0x58]
test ebp, ebp
jne 0x4565c1
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4565a0
call fcn.0046d6b5
mov ecx, dword [edi]
add ecx, esi
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0044d330
or dword [esp + 0x1c], 1
add esp, 8
cmp dword [eax + 0x18], ebx
jb 0x4565c6
mov esi, dword [eax + 4]
jmp 0x4565c9
mov eax, dword [ebp]
jmp 0x456596
lea esi, [eax + 4]
mov eax, dword [0x4867a8]
test eax, eax
jne 0x4565e0
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x4565e4
mov eax, dword [eax]
jmp 0x4565e6
xor eax, eax
mov ecx, dword [0x4867ac]
cmp ecx, dword [eax + 0x10]
jb 0x4565f6
call fcn.0046d6b5
mov edx, dword [0x4867ac]
mov eax, dword [edx]
mov ecx, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x456620
test dl, dl
je 0x45661c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x456620
add eax, 2
add ecx, 2
test dl, dl
jne 0x456600
xor eax, eax
jmp 0x456625
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45662d
mov bl, 1
jmp 0x45662f
xor bl, bl
test byte [esp + 0x14], 1
je 0x45664f
and dword [esp + 0x14], 0xfffffffe
cmp dword [esp + 0x54], 0x10
jb 0x45664f
mov eax, dword [esp + 0x40]
push eax
call fcn.0046d54d
add esp, 4
test bl, bl
jne 0x45667a
test ebp, ebp
jne 0x456675
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456668
call fcn.0046d6b5
add edi, 4
mov ebx, 0x10
jmp 0x456520
mov eax, dword [ebp]
jmp 0x45665e
mov eax, dword [0x486898]
lea ecx, [edi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x45669b
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edi
call fcn.0046d37d
add esp, 0x10
sub dword [0x486898], 4
cmp dword [0x486894], edi
ja 0x4566b2
cmp edi, dword [0x486898]
jbe 0x4566b7
call fcn.0046d6b5
mov ebx, 0x10
mov eax, dword [0x4867a8]
test eax, eax
jne 0x4566d3
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x4566d7
mov eax, dword [eax]
jmp 0x4566d9
xor eax, eax
mov ecx, dword [0x4867ac]
cmp ecx, dword [eax + 0x10]
jb 0x4566e9
call fcn.0046d6b5
add dword [0x4867ac], ebx
jmp 0x4564a0
mov eax, dword [0x487578]
test eax, eax
jne 0x45670b
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x45670f
mov eax, dword [eax]
jmp 0x456711
xor eax, eax
mov edx, dword [0x48757c]
cmp edx, dword [eax + 0x10]
jb 0x456721
call fcn.0046d6b5
add dword [0x48757c], 0x24
jmp 0x456440
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov byte [esp + 0x98], 0x23
mov dword [esp + 0x1c], ecx
jmp 0x456760
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x38]
jae 0x456f19
push 0x37
lea eax, [esp + 0xf0]
push 0
push eax
call fcn.0046de30
push 0x2c
lea ecx, [esp + 0xd0]
push 0
push ecx
call fcn.0046de30
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x398]
add esp, 0x18
push 0
lea eax, [esp + 0xf0]
push eax
add ecx, esi
push ecx
mov dword [esp + 0xa0], edx
call fcn.004015d4
push 0
lea edx, [esp + 0xc4]
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0xf4]
push eax
call fcn.00402878
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x164]
push eax
call fcn.00402f4c
lea ecx, [esp + 0x15c]
push ecx
call fcn.0047fa81
lea eax, [esp + 0x160]
add esp, 4
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456810
sub eax, edx
push eax
lea edx, [esp + 0x160]
push edx
lea ecx, [esp + 0x12c]
call fcn.0043c530
lea eax, [esp + 0x15c]
push 0x40d7b4
push eax
call fcn.0046df40
add esp, 8
test eax, eax
jne 0x456864
lea ecx, [esp + 0x15c]
push 0x40d7ac
push ecx
call fcn.0046df40
add esp, 8
test eax, eax
je 0x456b60
lea edx, [esp + 0x15c]
push 0x40d7a8
push edx
call fcn.0046df40
inc eax
push eax
lea eax, [esp + 0x26c]
push 0x104
push eax
call fcn.0046e38e
lea eax, [esp + 0x274]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456897
lea ecx, [esp + 0x260]
sub eax, edx
dec ecx
cmp byte [ecx + eax], 0x5d
jne 0x456b60
lea eax, [esp + 0x260]
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4568c0
sub eax, esi
push 0x485d60
mov byte [ecx + eax], dl
lea ecx, [esp + 0x264]
push 0x40d0a4
push ecx
call fcn.0046df14
add esp, 0xc
test eax, eax
je 0x456b60
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0x34]
sub dword [0x485d60], eax
lea ecx, [esp + 0x9c]
push ecx
mov ecx, 0x4867e0
call fcn.00445260
mov edx, dword [eax]
mov dword [0x487578], edx
mov eax, dword [eax + 4]
mov dword [0x48757c], eax
mov ebp, 0x24
mov eax, dword [0x4867f0]
mov esi, eax
cmp dword [0x4867ec], eax
jbe 0x456936
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x456947
cmp eax, dword [0x4867e0]
je 0x45694c
call fcn.0046d6b5
cmp dword [0x48757c], esi
je 0x456b60
mov eax, dword [0x487578]
test eax, eax
jne 0x45696f
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x456973
mov eax, dword [eax]
jmp 0x456975
xor eax, eax
mov ecx, dword [0x48757c]
cmp ecx, dword [eax + 0x10]
jb 0x456985
call fcn.0046d6b5
mov esi, dword [0x48757c]
mov edi, dword [esi + 0x18]
add esi, 0xc
cmp edi, dword [esi + 0x10]
jbe 0x45699b
call fcn.0046d6b5
mov edx, dword [esi]
mov dword [0x4867a8], edx
mov dword [0x4867ac], edi
lea esp, [esp]
mov eax, dword [0x487578]
test eax, eax
jne 0x4569c7
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x4569cb
mov eax, dword [eax]
jmp 0x4569cd
xor eax, eax
mov ecx, dword [0x48757c]
cmp ecx, dword [eax + 0x10]
jb 0x4569dd
call fcn.0046d6b5
mov esi, dword [0x48757c]
mov edi, dword [esi + 0x1c]
add esi, 0xc
cmp dword [esi + 0xc], edi
jbe 0x4569f3
call fcn.0046d6b5
mov eax, dword [0x4867a8]
mov esi, dword [esi]
test eax, eax
je 0x456a02
cmp eax, esi
je 0x456a07
call fcn.0046d6b5
cmp dword [0x4867ac], edi
je 0x456b28
mov eax, dword [0x4867a8]
test eax, eax
jne 0x456a2a
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x456a2e
mov eax, dword [eax]
jmp 0x456a30
xor eax, eax
mov edx, dword [0x4867ac]
cmp edx, dword [eax + 0x10]
jb 0x456a40
call fcn.0046d6b5
mov eax, dword [0x4867ac]
mov ecx, dword [eax + 8]
mov eax, dword [0x4867a8]
cmp ecx, dword [0x485d60]
je 0x456a88
test eax, eax
jne 0x456a67
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x456a6b
mov eax, dword [eax]
jmp 0x456a6d
xor eax, eax
mov edx, dword [0x4867ac]
cmp edx, dword [eax + 0x10]
jb 0x456a7d
call fcn.0046d6b5
add dword [0x4867ac], ebx
jmp 0x4569b0
test eax, eax
jne 0x456a9a
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x456a9e
mov eax, dword [eax]
jmp 0x456aa0
xor eax, eax
mov ecx, dword [0x4867ac]
cmp ecx, dword [eax + 0x10]
jb 0x456ab0
call fcn.0046d6b5
mov edx, dword [0x4867ac]
cmp dword [edx], 0
lea ecx, [esp + 0x124]
je 0x456b1c
push 3
push 0x40d7a4
call fcn.0043d690
mov eax, dword [0x4867a8]
test eax, eax
jne 0x456ae5
call fcn.0046d6b5
mov eax, dword [0x4867a8]
test eax, eax
je 0x456ae9
mov eax, dword [eax]
jmp 0x456aeb
xor eax, eax
mov ecx, dword [0x4867ac]
cmp ecx, dword [eax + 0x10]
jb 0x456afb
call fcn.0046d6b5
mov edx, dword [0x4867ac]
mov edx, dword [edx]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456b08
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x12c]
jmp 0x456b23
push 0x11
push 0x40d790
call fcn.0043d690
mov eax, dword [0x487578]
test eax, eax
jne 0x456b3f
call fcn.0046d6b5
mov eax, dword [0x487578]
test eax, eax
je 0x456b43
mov eax, dword [eax]
jmp 0x456b45
xor eax, eax
mov ecx, dword [0x48757c]
cmp ecx, dword [eax + 0x10]
jb 0x456b55
call fcn.0046d6b5
add dword [0x48757c], ebp
jmp 0x456922
lea edx, [esp + 0x15c]
push 0x40d788
push edx
call fcn.0046df40
add esp, 8
test eax, eax
je 0x456d0c
lea eax, [esp + 0x15c]
push 0x40d784
push eax
call fcn.0046df40
add eax, 2
push eax
lea ecx, [esp + 0x26c]
push 0x104
push ecx
call fcn.0046e38e
push 0x485d60
lea edx, [esp + 0x278]
push 0x40d0a4
push edx
call fcn.0046df14
add esp, 0x20
test eax, eax
je 0x456d0c
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x34]
sub dword [0x485d60], ecx
je 0x456d0c
mov edi, dword [0x486894]
mov eax, dword [0x486898]
cmp edi, eax
jbe 0x456bf3
call fcn.0046d6b5
mov eax, dword [0x486898]
mov ebx, dword [0x486888]
mov ebp, 0x10
mov edi, edi
mov esi, eax
cmp dword [0x486894], eax
jbe 0x456c0f
call fcn.0046d6b5
test ebx, ebx
je 0x456c1b
cmp ebx, dword [0x486888]
je 0x456c20
call fcn.0046d6b5
cmp edi, esi
je 0x456d0c
test ebx, ebx
jne 0x456cfa
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456c41
call fcn.0046d6b5
mov edx, dword [edi]
push edx
lea ecx, [esp + 0x5c]
call fcn.0045d5c0
cmp eax, dword [0x485d60]
jne 0x456cd8
push 4
push 0x40d57c
lea ecx, [esp + 0x12c]
call fcn.0043d690
mov esi, dword [esp + 0x58]
test ebx, ebx
jne 0x456d01
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456c89
call fcn.0046d6b5
mov eax, dword [edi]
add eax, esi
push eax
lea ecx, [esp + 0xa8]
push ecx
call fcn.0044d330
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x130]
mov byte [esp + 0x37c], 6
call fcn.0043d590
mov byte [esp + 0x370], 3
cmp dword [esp + 0xbc], ebp
jb 0x456cd8
mov edx, dword [esp + 0xa8]
push edx
call fcn.0046d54d
add esp, 4
test ebx, ebx
jne 0x456d08
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456ced
call fcn.0046d6b5
mov eax, dword [0x486898]
add edi, 4
jmp 0x456c00
mov eax, dword [ebx]
jmp 0x456c37
mov eax, dword [ebx]
jmp 0x456c7f
mov eax, dword [ebx]
jmp 0x456ce3
lea eax, [esp + 0x15c]
push 0x40d77c
push eax
call fcn.0046df40
add esp, 8
test eax, eax
je 0x456ec4
cmp dword [esp + 0x14], 5
jne 0x456ec4
lea ecx, [esp + 0x15c]
push 0x40d778
push ecx
call fcn.0046df40
inc eax
push eax
lea edx, [esp + 0x26c]
push 0x104
push edx
call fcn.0046e38e
push 0x485d60
lea eax, [esp + 0x278]
push 0x40d0a4
push eax
call fcn.0046df14
add esp, 0x20
test eax, eax
je 0x456ec4
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0x34]
mov edi, dword [0x486894]
mov eax, dword [0x486898]
sub dword [0x485d60], edx
cmp edi, eax
jbe 0x456da2
call fcn.0046d6b5
mov eax, dword [0x486898]
mov ebx, dword [0x486888]
xor ebp, ebp
lea ebx, [ebx]
mov esi, eax
cmp dword [0x486894], eax
jbe 0x456dbf
call fcn.0046d6b5
cmp ebx, ebp
je 0x456dcb
cmp ebx, dword [0x486888]
je 0x456dd0
call fcn.0046d6b5
cmp edi, esi
je 0x456ec4
cmp ebx, ebp
jne 0x456eb2
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456df1
call fcn.0046d6b5
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x5c]
call fcn.0045d5c0
cmp eax, dword [0x485d60]
jne 0x456e90
push 4
push 0x40d57c
lea ecx, [esp + 0x12c]
call fcn.0043d690
mov esi, dword [esp + 0x58]
cmp ebx, ebp
jne 0x456eb9
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456e39
call fcn.0046d6b5
mov ecx, dword [edi]
add ecx, esi
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0044d330
add esp, 8
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x130]
mov byte [esp + 0x37c], 7
call fcn.0043d590
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0x370], 3
jb 0x456e7f
mov eax, dword [esp + 0x40]
push eax
call fcn.0046d54d
add esp, 4
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], ebp
mov byte [esp + 0x40], 0
cmp ebx, ebp
jne 0x456ec0
call fcn.0046d6b5
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x456ea5
call fcn.0046d6b5
mov eax, dword [0x486898]
add edi, 4
jmp 0x456db0
mov eax, dword [ebx]
jmp 0x456de7
mov eax, dword [ebx]
jmp 0x456e2f
mov eax, dword [ebx]
jmp 0x456e9b
cmp dword [esp + 0x13c], 0x10
mov eax, dword [esp + 0x128]
jae 0x456edc
lea eax, [esp + 0x128]
mov ecx, dword [esp + 0x24]
push eax
push 0x412
push ecx
call fcn.00447f50
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add dword [esp + 0x24], eax
add dword [esp + 0x38c], eax
add ecx, eax
add esp, 0xc
cmp ecx, 0x1000
mov dword [esp + 0x1c], ecx
mov ebx, 0x10
jl 0x456760
cmp dword [esp + 0x158], ebx
jb 0x456f32
mov edx, dword [esp + 0x144]
push edx
call fcn.0046d54d
add esp, 4
xor edi, edi
mov esi, 0xf
mov dword [esp + 0x158], esi
mov dword [esp + 0x154], edi
mov byte [esp + 0x144], 0
cmp dword [esp + 0x13c], ebx
jb 0x456f68
mov eax, dword [esp + 0x128]
push eax
call fcn.0046d54d
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x13c], esi
mov dword [esp + 0x138], edi
mov byte [esp + 0x128], 0
mov byte [esp + 0x370], 0
call fcn.0045d4d0
mov dword [esp + 0x370], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.004468b0
mov ecx, dword [esp + 0x368]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x350]
xor ecx, esp
call fcn.0046db77
add esp, 0x360
ret