Function at 0x4553f0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
push 0x4caee2
mov eax, dword fs:[0]
push eax
sub esp, 0x570
mov eax, dword [0x4eadc8]
xor eax, esp
mov dword [esp + 0x56c], eax
push ebp
push esi
push edi
mov eax, dword [0x4eadc8]
xor eax, esp
push eax
lea eax, [esp + 0x580]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x28], esi
test ebx, ebx
je 0x4565c6
cmp dword [0x639494], 0
je 0x45572a
mov ecx, dword [0x4efb90]
push 0
call fcn.0047a400
mov ecx, dword [0x4efb90]
call fcn.0047a6c0
mov eax, dword [0x6391d8]
mov ecx, dword [0x4efb90]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00489780
mov dword [esp + 0x588], 0
mov eax, dword [0x639498]
sub eax, 4
je 0x455709
sub eax, 1
push 0x1e1e1e
lea ecx, [esp + 0x18]
je 0x4556f8
sub eax, 1
je 0x4556ba
push 0xc8c8c8
call fcn.00483ce0
push 0x64
push 0x64
mov edi, 0x4df910
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0x1e1e1e
push 0x96c896
lea ecx, [esp + 0x1c]
call fcn.00483ce0
push 0x8c
push 0x64
mov edi, 0x4df928
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0x1e1e1e
push 0xc89696
lea ecx, [esp + 0x1c]
call fcn.00483ce0
push 0xa0
push 0x64
mov edi, 0x4df93c
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0xb4
push 0x64
mov edi, 0x4df950
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0x1e1e1e
push 0xc8c8c8
lea ecx, [esp + 0x1c]
call fcn.00483ce0
push 0xdc
push 0x64
mov edi, 0x4df964
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0xf0
push 0x64
mov edi, 0x4df978
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
cmp dword [0x639498], 1
je 0x4555aa
push 0x639440
push 0x8c
push 0xdc
lea ecx, [esp + 0x20]
call fcn.00487300
cmp dword [0x639498], 2
je 0x4555cb
push 0x639450
push 0xa0
push 0xdc
lea ecx, [esp + 0x20]
call fcn.00487300
cmp dword [0x639498], 3
je 0x4555ec
push 0x639460
push 0xb4
push 0xdc
lea ecx, [esp + 0x20]
call fcn.00487300
cmp byte [0x639440], 0
je 0x455721
cmp byte [0x639450], 0
je 0x455721
cmp byte [0x639460], 0
je 0x455721
mov ecx, 0x639440
lea eax, [esi + 0x426be]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x455640
test dl, dl
je 0x45563c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x455640
add eax, 2
add ecx, 2
test dl, dl
jne 0x455620
xor eax, eax
jmp 0x455645
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x455658
push 0x12c
mov edi, 0x4df984
jmp 0x455710
mov ecx, 0x639460
mov eax, 0x639450
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x455682
test dl, dl
je 0x45567e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x455682
add eax, 2
add ecx, 2
test dl, dl
jne 0x455662
xor eax, eax
jmp 0x455687
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x455697
push 0x12c
mov edi, 0x4df9a8
jmp 0x455710
mov eax, 0x639450
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4556a0
sub eax, edx
cmp eax, 4
jae 0x455721
push 0x12c
mov edi, 0x4df9d4
jmp 0x455710
push 0x9696c8
call fcn.00483ce0
mov edi, 0x4df8f0
push 0x64
push 0x64
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
push 0x1e1e1e
push 0xc8c8c8
lea ecx, [esp + 0x1c]
call fcn.00483ce0
push 0x78
mov edi, 0x4df8e4
jmp 0x455710
push 0xc89696
call fcn.00483ce0
mov edi, 0x4df8c8
jmp 0x4556c9
push 0x64
mov edi, 0x4dc098
push 0x64
call fcn.004021e0
push eax
lea ecx, [esp + 0x20]
call fcn.00487380
lea ecx, [esp + 0x14]
jmp 0x4565b6
cmp byte [0x6392d3], 0
jne 0x455762
push 0
push 1
call fcn.004838e0
add esp, 8
test eax, eax
je 0x45574a
mov byte [0x6391a2], 1
mov edi, 0x4df9f8
call fcn.004021e0
push eax
call fcn.00441e30
add esp, 4
jmp 0x4565c6
xor eax, eax
mov ecx, 0x9c
mov edx, ebx
call fcn.004542a0
mov eax, 1
mov ecx, 0x1e3
mov edx, ebx
call fcn.004542a0
mov edx, dword [0x6391d8]
mov eax, dword [0x4efb90]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.00489780
mov dword [esp + 0x588], 1
mov eax, dword [0x63948c]
imul eax, eax, 0x68
add eax, 0x639340
push eax
push 0x1ab
push 0xf5
lea ecx, [esp + 0x20]
call fcn.00487220
mov eax, dword [0x63948c]
imul eax, eax, 0x68
add eax, 0x639374
push eax
push 0x1ab
push 0x23f
lea ecx, [esp + 0x20]
call fcn.00487220
mov eax, dword [esi + 0x42734]
cmp eax, 0xffffffff
jle 0x4558d6
test eax, eax
je 0x455801
mov esi, 0x1d9
cmp eax, 2
jne 0x455806
mov esi, 0x92
cmp byte [0x689255], 0
mov ebp, dword [sym.imp.kernel32.dll_GetTickCount]
jne 0x455823
call ebp
mov dword [0x689258], eax
mov byte [0x689255], 1
push 0x10
push 0
push 0x37
push 0xbe
push 0x159
lea ecx, [esi - 5]
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047a5d0
push 0x1e1e1e
push 0xc89696
lea ecx, [esp + 0x1c]
call fcn.00483ce0
mov edi, 0x4dfa18
call fcn.004021e0
push eax
push 0x15e
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.004871a0
mov edi, 0x4dfa24
call fcn.004021e0
push eax
push 0x16e
lea eax, [esp + 0x2c]
push esi
push eax
call fcn.004871a0
mov edi, 0x4dfa40
call fcn.004021e0
push eax
push 0x17e
lea ecx, [esp + 0x3c]
push esi
push ecx
call fcn.004871a0
add esp, 0x30
cmp byte [0x689255], 0
je 0x4558d6
call ebp
sub eax, dword [0x689258]
cmp eax, 0x1388
jbe 0x4558d6
mov edx, dword [esp + 0x28]
mov byte [0x689255], 0
mov dword [edx + 0x42734], 0xffffffff
or esi, 0xffffffff
lea ecx, [esp + 0x14]
mov dword [esp + 0x588], esi
call fcn.004897b0
cmp byte [0x6392f6], 0
je 0x4559e2
mov ecx, dword [0x4efb90]
call fcn.0047a6c0
mov ecx, dword [0x4efb90]
push 0x10
push 0
push 0x78
push 0x17c
push 0x104
push 0xb5
call fcn.0047a5d0
mov eax, dword [0x6391d8]
mov ecx, dword [0x4efb90]
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.00489780
push 0x1e1e1e
push 0xc89696
lea ecx, [esp + 0x70]
mov dword [esp + 0x590], 2
call fcn.00483ce0
push 0x4dfa60
push 0xdc
lea edx, [esp + 0x70]
push 0x78
push edx
call fcn.004871a0
add esp, 0x10
push 0x1e1e1e
push 0xc8c8c8
lea ecx, [esp + 0x70]
call fcn.00483ce0
push 0xf0
push 0x78
mov edi, 0x4dfa74
call fcn.004021e0
push eax
lea ecx, [esp + 0x74]
call fcn.00487380
push 0xfc
push 0x78
mov edi, 0x4dfab0
call fcn.004021e0
push eax
lea ecx, [esp + 0x74]
call fcn.00487380
push 0x122
push 0x78
mov edi, 0x4dfac8
call fcn.004021e0
push eax
lea ecx, [esp + 0x74]
call fcn.00487380
lea ecx, [esp + 0x68]
mov dword [esp + 0x588], esi
call fcn.004897b0
cmp dword [0x639488], 0
je 0x455bc1
mov ecx, dword [0x4efb90]
call fcn.0047a6c0
mov ecx, dword [0x4efb90]
push 0x10
push 0
push 0x78
push 0x177
push 0xc8
push 0x64
call fcn.0047a5d0
mov eax, dword [0x6391d8]
mov ecx, dword [0x4efb90]
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.00489780
push 0x1e1e1e
push 0xc89696
lea ecx, [esp + 0x5c]
mov dword [esp + 0x590], 3
call fcn.00483ce0
mov esi, dword [esp + 0x28]
movzx edx, byte [esi + 0x42739]
imul edx, edx, 0x34
add edx, 0x639340
push edx
push 0xdc
lea eax, [esp + 0x5c]
push 0x78
push eax
call fcn.004871a0
add esp, 0x10
push 0x1e1e1e
push 0xc8c8c8
lea ecx, [esp + 0x5c]
call fcn.00483ce0
push 0xfa
push 0x78
mov edi, 0x4dfae4
call fcn.004021e0
push eax
lea ecx, [esp + 0x60]
call fcn.00487380
push 0xff
lea ecx, [esp + 0x281]
push 0
push ecx
mov byte [esp + 0x288], 0
call fcn.00493ca0
add esp, 0xc
push 0xff
lea edx, [esp + 0x381]
push 0
push edx
mov byte [esp + 0x388], 0
call fcn.00493ca0
movzx eax, byte [esi + 0x42739]
imul eax, eax, 0x34
mov eax, dword [eax + 0x639370]
xor edx, edx
mov ecx, 0x15180
div ecx
mov esi, 0xe10
add esp, 0xc
mov ecx, eax
mov eax, edx
xor edx, edx
div esi
mov esi, eax
mov eax, 0x88888889
mul edx
shr edx, 5
test edx, edx
jg 0x455b5c
test esi, esi
jg 0x455b5c
test ecx, ecx
jg 0x455b5c
mov edi, 0x4dfb40
call fcn.004021e0
lea edx, [esp + 0x27c]
nop
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x455b30
mov edi, 0x4dfb7c
call fcn.004021e0
lea edx, [esp + 0x37c]
jmp 0x455b50
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x455b50
jmp 0x455b7a
push edx
push esi
push ecx
mov edi, 0x4dfb10
call fcn.004021e0
push eax
lea edx, [esp + 0x28c]
push edx
call fcn.0048dc72
add esp, 0x14
push 0x10e
push 0x78
lea eax, [esp + 0x284]
push eax
lea ecx, [esp + 0x60]
call fcn.00487380
push 0x11a
push 0x78
lea ecx, [esp + 0x384]
push ecx
lea ecx, [esp + 0x60]
call fcn.00487380
lea ecx, [esp + 0x54]
mov dword [esp + 0x588], 0xffffffff
call fcn.004897b0
or esi, 0xffffffff
cmp dword [0x4ed29c], esi
je 0x455fe8
mov ecx, dword [0x4efb90]
call fcn.0047a6c0
mov ecx, dword [0x4efb90]
push 0x10
push 0
push 0xa0
push 0x177
push 0xc8
push 0x64
call fcn.0047a5d0
mov edx, dword [0x6391d8]
mov eax, dword [0x4efb90]
push edx
push eax
lea ecx, [esp + 0x34]
call fcn.00489780
push 0x1e1e1e
push 0xc89696
lea ecx, [esp + 0x34]
mov dword [esp + 0x590], 4
call fcn.00483ce0
mov ecx, dword [0x4ed29c]
imul ecx, ecx, 0x34
add ecx, 0x639340
push ecx
push 0xdc
lea edx, [esp + 0x34]
push 0x78
push edx
call fcn.004871a0
add esp, 0x10
push 0x1e1e1e
push 0xc8c8c8
lea ecx, [esp + 0x34]
call fcn.00483ce0
mov eax, dword [0x63933c]
test eax, eax
jl case.0x455c98.4
cmp eax, 1
jle 0x455d83
cmp eax, 4
jne case.0x455c98.4
mov eax, dword [0x639470]
dec eax
cmp eax, 0x16
ja case.0x455c98.4
movzx eax, byte [eax + 0x456608]
jmp dword [eax*4 + 0x4565f4]
push 0xf0
push 0x78
mov edi, 0x4dfcf4
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov ecx, dword [0x4ed29c]
imul ecx, ecx, 0x34
mov byte [ecx + 0x63936d], 2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x588], esi
call fcn.004897b0
jmp 0x45603a
push 0xf0
push 0x78
mov edi, 0x4dfd20
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov edx, dword [0x4ed29c]
imul edx, edx, 0x34
lea ecx, [esp + 0x2c]
mov byte [edx + 0x63936d], 0
mov dword [esp + 0x588], esi
call fcn.004897b0
jmp 0x45603a
push 0xf0
push 0x78
mov edi, 0x4dfd50
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov eax, dword [0x4ed29c]
imul eax, eax, 0x34
lea ecx, [esp + 0x2c]
mov byte [eax + 0x63936d], 0
mov dword [esp + 0x588], esi
call fcn.004897b0
jmp 0x45603a
push 0xf0
push 0x78
mov edi, 0x4dfd84
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov edi, 0x4dfda4
jmp 0x455fc0
mov eax, dword [0x4ed29c]
mov ecx, eax
imul ecx, ecx, 0x34
cmp byte [ecx + 0x63936d], 1
ja 0x455e26
push 0xf0
push 0x78
mov edi, 0x4de164
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0xfe
push 0x78
mov edi, 0x4dfb9c
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0x10a
push 0x78
mov edi, 0x4dfbcc
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push pe_nt_image_headers32
push 0x78
mov edi, 0x4dfbf4
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0x12c
push 0x78
mov edi, 0x4dfc20
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov eax, dword [0x4ed29c]
mov edx, eax
imul edx, edx, 0x34
cmp byte [edx + 0x63936d], 2
jne 0x455f94
push 0xff
lea eax, [esp + 0x81]
push 0
push eax
mov byte [esp + 0x88], 0
call fcn.00493ca0
add esp, 0xc
push 0xff
lea ecx, [esp + 0x481]
push 0
push ecx
mov byte [esp + 0x488], 0
call fcn.00493ca0
mov edx, dword [esp + 0x34]
movzx eax, byte [edx + 0x42739]
imul eax, eax, 0x34
mov eax, dword [eax + 0x639370]
xor edx, edx
mov ecx, 0x15180
div ecx
mov esi, 0xe10
add esp, 0xc
mov ecx, eax
mov eax, edx
xor edx, edx
div esi
mov esi, eax
mov eax, 0x88888889
mul edx
shr edx, 5
test edx, edx
jg 0x455eed
test esi, esi
jg 0x455eed
test ecx, ecx
jg 0x455eed
mov edi, 0x4dfb40
call fcn.004021e0
lea edx, [esp + 0x7c]
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x455ec6
mov edi, 0x4dfb7c
call fcn.004021e0
lea edx, [esp + 0x47c]
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x455ee1
jmp 0x455f0b
push edx
push esi
push ecx
mov edi, 0x4dfb10
call fcn.004021e0
push eax
lea edx, [esp + 0x8c]
push edx
call fcn.0048dc72
add esp, 0x14
push 0xf0
push 0x78
mov edi, 0x4de164
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0xfc
push 0x78
mov edi, 0x4dfc50
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0x108
push 0x78
mov edi, 0x4dfc88
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0x11c
push 0x78
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
push 0x128
push 0x78
lea ecx, [esp + 0x484]
push ecx
lea ecx, [esp + 0x38]
call fcn.00487380
mov eax, dword [0x4ed29c]
or esi, 0xffffffff
imul eax, eax, 0x34
cmp byte [eax + 0x63936d], 3
jne case.0x455c98.4
push 0xf0
push 0x78
mov edi, 0x4de164
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
mov edi, 0x4dfcc4
push 0xfc
push 0x78
call fcn.004021e0
push eax
lea ecx, [esp + 0x38]
call fcn.00487380
lea ecx, [esp + 0x2c]
mov dword [esp + 0x588], esi
call fcn.004897b0
jmp 0x45603a
mov edi, ebx
call fcn.004502c0
cmp eax, 1
jne 0x45600e
mov edx, dword [0x4f78e8]
push 0xc
push edx
push 0x184
push 0x13a
mov eax, 0xa2
jmp 0x45602a
cmp eax, 2
jne 0x45603a
mov eax, dword [0x4f78e8]
push 0xc
push eax
push 0x184
push 0x281
mov eax, 0x1e9
mov ecx, dword [0x4f78ec]
push 0x71
call fcn.0043e880
add esp, 0x14
mov edi, ebx
call fcn.00450230
mov edi, eax
cmp edi, 0x1a
jne 0x4560b6
cmp byte [0x4f78e4], 1
push 0
mov edx, ebx
push 0
jne 0x4560af
lea eax, [edi + 2]
call fcn.0044f9d0
mov eax, dword [ebx + 0xaa0]
test eax, eax
je 0x4561a1
cmp byte [eax + 0x14], 0
movsx ecx, word [ebx + 0x97c]
movsx edx, word [ebx + 0x97a]
je 0x4561a1
mov esi, dword [eax + 4]
test esi, esi
je 0x456184
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x4561a1
mov eax, 0x1b
jmp 0x45605a
mov eax, dword [ebx + 0xa74]
test eax, eax
je 0x456114
cmp byte [eax + 0x14], 0
movsx ecx, word [ebx + 0x97c]
movsx edx, word [ebx + 0x97a]
je 0x456114
mov esi, dword [eax + 4]
test esi, esi
je 0x4560f7
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x456114
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047bee0
cmp edi, 0x25
jne 0x45605f
cmp byte [0x4f78e4], 1
push 0
mov edx, ebx
push 0
jne 0x45617d
lea eax, [edi + 2]
call fcn.0044f9d0
mov eax, dword [ebx + 0xaac]
test eax, eax
je 0x4561e8
cmp byte [eax + 0x14], 0
movsx ecx, word [ebx + 0x97c]
movsx edx, word [ebx + 0x97a]
je 0x4561e8
mov esi, dword [eax + 4]
test esi, esi
je 0x4561cb
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x4561e8
mov eax, 0x26
jmp 0x45612f
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047bee0
cmp edi, 0x28
jne 0x456134
cmp byte [0x4f78e4], 1
push 0
mov edx, ebx
push 0
jne 0x4561bf
lea eax, [edi + 2]
call fcn.0044f9d0
jmp 0x4561e8
mov eax, 0x29
call fcn.0044f9d0
jmp 0x4561e8
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047bee0
cmp dword [0x63948c], 0
jne 0x456206
push 0
push 0
mov eax, 0x20
mov edx, ebx
call fcn.0044f9d0
jmp 0x45628e
cmp edi, 0x1d
jne 0x456230
cmp byte [0x4f78e4], 1
push 0
mov edx, ebx
push 0
jne 0x456224
lea eax, [edi + 2]
call fcn.0044f9d0
jmp 0x45628e
mov eax, 0x1e
call fcn.0044f9d0
jmp 0x45628e
mov eax, dword [ebx + 0xa80]
test eax, eax
je 0x45628e
cmp byte [eax + 0x14], 0
movsx ecx, word [ebx + 0x97c]
movsx edx, word [ebx + 0x97a]
je 0x45628e
mov esi, dword [eax + 4]
test esi, esi
je 0x456271
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x45628e
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047bee0
cmp dword [0x63948c], 1
jne 0x4562ac
push 0
push 0
mov eax, 0x24
mov edx, ebx
call fcn.0044f9d0
jmp 0x456334
cmp edi, 0x21
jne 0x4562d6
cmp byte [0x4f78e4], 1
push 0
mov edx, ebx
push 0
jne 0x4562ca
lea eax, [edi + 2]
call fcn.0044f9d0
jmp 0x456334
mov eax, 0x22
call fcn.0044f9d0
jmp 0x456334
mov eax, dword [ebx + 0xa90]
test eax, eax
je 0x456334
cmp byte [eax + 0x14], 0
movsx ecx, word [ebx + 0x97c]
movsx edx, word [ebx + 0x97a]
je 0x456334
mov esi, dword [eax + 4]
test esi, esi
je 0x456317
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x456334
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047bee0
lea ecx, [esp + 0x17c]
push ecx
push 0x4dbb64
push 0x4f9912
call fcn.0048e15e
mov edx, dword [0x6391d8]
mov eax, dword [0x4efb90]
add esp, 0xc
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00489780
push 4
lea ecx, [esp + 0x180]
push 0x4dbb68
push ecx
mov dword [esp + 0x594], 5
call fcn.0048e1e8
add esp, 0xc
test eax, eax
je 0x45657e
push 5
lea edx, [esp + 0x180]
push 0x4dfdd0
push edx
call fcn.0048e1e8
add esp, 0xc
test eax, eax
je 0x45657e
push 7
lea eax, [esp + 0x180]
push 0x4dfdd8
push eax
call fcn.0048e1e8
add esp, 0xc
test eax, eax
je 0x45657e
push 4
lea ecx, [esp + 0x180]
push 0x4dfde0
push ecx
call fcn.0048e1e8
add esp, 0xc
test eax, eax
je 0x45657e
mov esi, dword [esp + 0x28]
movzx eax, byte [esi + 0x42668]
dec eax
cmp eax, 3
ja case.default.0x456400
jmp dword [eax*4 + 0x456620]
mov eax, dword [esi + 0x4266c]
test eax, eax
jge 0x456443
push 5
push 5
mov edi, 0x4db744
call fcn.004021e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00487380
call fcn.0048de36
cdq
mov ecx, 0x2710
idiv ecx
neg edx
mov dword [esi + 0x4266c], edx
jmp case.default.0x456400
cmp eax, 0xf
jge case.default.0x456400
mov edi, 0x4dfde8
push eax
call fcn.004021e0
push eax
push 5
lea edx, [esp + 0x4c]
push 5
push edx
call fcn.004871a0
add esp, 0x14
jmp case.default.0x456400
mov eax, dword [esi + 0x4266c]
test eax, eax
jge 0x4564aa
push 5
push 5
mov edi, 0x4db764
call fcn.004021e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00487380
call fcn.0048de36
cdq
mov ecx, 0x2710
idiv ecx
neg edx
mov dword [esi + 0x4266c], edx
jmp case.default.0x456400
mov edi, 0x4dfe04
jmp 0x456451
mov ecx, dword [esi + 0x4266c]
test ecx, ecx
jge 0x4564ea
push 5
push 5
mov edi, 0x4db784
call fcn.004021e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00487380
call fcn.0048de36
cdq
mov ecx, 0x2710
idiv ecx
neg edx
mov dword [esi + 0x4266c], edx
jmp case.default.0x456400
mov edi, 0x4dfe24
jmp 0x45652f
mov ecx, dword [esi + 0x4266c]
test ecx, ecx
jge 0x45652a
push 5
push 5
mov edi, 0x4dfe24
call fcn.004021e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00487380
call fcn.0048de36
cdq
mov ecx, 0x2710
idiv ecx
neg edx
mov dword [esi + 0x4266c], edx
jmp case.default.0x456400
mov edi, 0x4dfe4c
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
push ecx
add eax, edx
push eax
call fcn.004021e0
push eax
push 5
lea ecx, [esp + 0x50]
push 5
push ecx
call fcn.004871a0
add esp, 0x18
cmp dword [esi + 0x4266c], 0
jge 0x456582
push 0x19
push 5
mov edi, 0x4dfe74
call fcn.004021e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00487380
jmp 0x456582
mov esi, dword [esp + 0x28]
movzx edx, byte [0x63909a]
cmp dword [esi + edx*4 + 0x46de4], 0
lea eax, [esi + edx*4 + 0x46de4]
je 0x4565b2
mov eax, dword [eax]
mov ecx, dword [0x4efb90]
push eax
push 0x20c
push 0x2c1
call fcn.0047d4b0
lea ecx, [esp + 0x40]
mov dword [esp + 0x588], 0xffffffff
call fcn.004897b0
mov eax, 1
mov ecx, dword [esp + 0x580]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x56c]
xor ecx, esp
call fcn.0048d5a8
add esp, 0x57c
ret