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

Disassembly:
push 0xffffffffffffffff
push 0x5fee3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x1b]
push eax
push str.info_panel_button
lea ecx, [esp + 0x38]
call fcn.00402f20
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x118]
xor ebx, ebx
mov dword [esp + 0x110], ebx
call fcn.005b8470
mov ecx, dword [esp + 0x30]
mov ebp, eax
mov eax, dword [esp + 0x38]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10c], 0xffffffff
mov esi, ecx
je 0x476eb2
cmp eax, 0x80
jbe 0x476e8c
push ecx
call fcn.005e05ca
jmp 0x476eaf
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [edi]
mov dword [esi], edx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x2c], ebx
jle 0x477337
mov edi, edi
lea ecx, [esp + 0xa4]
call fcn.00473490
mov dword [esp + 0x10c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
push 8
mov byte [esp + 0x110], 2
call fcn.00401cc0
lea ecx, [eax + 8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov byte [eax], bl
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
push 8
mov byte [esp + 0x114], 4
call fcn.00401cc0
lea edx, [eax + 8]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov byte [eax], bl
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
push 8
mov byte [esp + 0x118], 6
call fcn.00401cc0
lea ecx, [eax + 8]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov byte [eax], bl
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
push 8
mov byte [esp + 0x11c], 8
call fcn.00401cc0
lea edx, [eax + 8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov byte [eax], bl
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
push 8
mov byte [esp + 0x120], 0xa
call fcn.00401cc0
lea ecx, [eax + 8]
add esp, 0x14
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov byte [eax], bl
lea edx, [esp + 0x1b]
push edx
push str.info_panel_button
lea ecx, [esp + 0x28]
mov byte [esp + 0x114], 0xb
call fcn.00402f20
lea eax, [esp + 0xb0]
mov byte [esp + 0x10c], 0xc
push eax
lea ecx, [esp + 0x100]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0xd8]
push eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x50]
push edx
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x140]
call fcn.00476400
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x10c], 0xb
mov esi, ecx
je 0x4770c0
cmp eax, 0x80
jbe 0x47709a
push ecx
call fcn.005e05ca
jmp 0x4770bd
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [edi]
mov dword [esi], edx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
lea eax, [esp + 0x30]
push eax
call fcn.00472e10
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0x90]
add esp, 4
cmp eax, 0xffffffff
mov dword [esp + 0xa4], eax
je 0x4771b7
mov edx, dword [esp + 0x84]
lea ecx, [esp + 0x1b]
push ecx
push edx
push edi
lea ecx, [esp + 0xd8]
call fcn.0040c800
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
lea eax, [esp + 0x1b]
push eax
push ecx
push edx
lea ecx, [esp + 0xe4]
call fcn.0040c800
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x1b]
push eax
push ecx
push ebp
lea ecx, [esp + 0xf0]
call fcn.0040c800
mov eax, dword [esp + 0x90]
lea edx, [esp + 0x1b]
push edx
push eax
push esi
lea ecx, [esp + 0xfc]
call fcn.0040c800
mov ecx, dword [0x65611c]
cmp ecx, dword [0x656120]
je 0x47719b
mov dword [esp + 0x44], ecx
mov dword [esp + 0x6c], ecx
cmp ecx, ebx
mov byte [esp + 0x10c], 0xd
je 0x477190
lea edx, [esp + 0xa4]
push edx
call fcn.00474da0
mov ecx, dword [0x65611c]
add ecx, 0x60
mov dword [0x65611c], ecx
jmp 0x4771b7
push 1
push 1
lea eax, [esp + 0x23]
push eax
lea edx, [esp + 0xb0]
push edx
push ecx
mov ecx, 0x656118
call fcn.004762a0
mov eax, dword [esp + 0x94]
sub eax, esi
cmp esi, ebx
je 0x477200
cmp eax, 0x80
jbe 0x4771d3
push esi
call fcn.005e05ca
jmp 0x4771fd
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov edi, dword [esp + 0x84]
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0xa0]
sub eax, ebp
cmp ebp, ebx
je 0x477243
cmp eax, 0x80
jbe 0x47721c
push ebp
call fcn.005e05ca
jmp 0x477240
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [esi]
mov dword [ebp], ecx
mov dword [esi], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x88]
sub eax, edi
cmp edi, ebx
je 0x477285
cmp eax, 0x80
jbe 0x47725f
push edi
call fcn.005e05ca
jmp 0x477282
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
sub eax, edi
cmp edi, ebx
je 0x4772c8
cmp eax, 0x80
jbe 0x4772a2
push edi
call fcn.005e05ca
jmp 0x4772c5
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
sub eax, esi
cmp esi, ebx
je 0x47730b
cmp eax, 0x80
jbe 0x4772e5
push esi
call fcn.005e05ca
jmp 0x477308
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
lea ecx, [esp + 0xa4]
mov dword [esp + 0x10c], 0xffffffff
call fcn.00473520
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x476ec0
lea edx, [esp + 0x1b]
push edx
push str.info_panel_pointrect
lea ecx, [esp + 0x28]
call fcn.00402f20
mov edi, dword [esp + 0x114]
lea eax, [esp + 0x20]
push eax
mov ecx, edi
mov dword [esp + 0x110], 0xe
call fcn.005b8470
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x10c], 0xffffffff
mov ebp, ecx
je 0x4773bd
cmp eax, 0x80
jbe 0x477396
push ecx
call fcn.005e05ca
jmp 0x4773ba
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [esi]
mov dword [ebp], ecx
mov dword [esi], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebx
jle 0x4774b9
jmp 0x4773d0
lea edx, [esp + 0x1b]
push edx
push str.info_panel_pointrect
lea ecx, [esp + 0x28]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
call fcn.00402f20
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x70]
push ecx
push ebp
lea edx, [esp + 0x2c]
push edx
mov ecx, edi
mov dword [esp + 0x11c], 0xf
call fcn.00473340
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x10c], 0xffffffff
mov esi, ecx
je 0x47746c
cmp eax, 0x80
jbe 0x47743f
push ecx
call fcn.005e05ca
jmp 0x477469
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov edi, dword [esp + 0x118]
mov dword [0x655bd8], ebx
add esp, 4
fld dword [esp + 0x6c]
call fcn.005e0b1c
fld dword [esp + 0x70]
mov dword [0x6561a4], eax
call fcn.005e0b1c
fld dword [esp + 0x44]
fsub dword [esp + 0x6c]
mov dword [0x6561a8], eax
call fcn.005e0b1c
fld dword [esp + 0x48]
fsub dword [esp + 0x70]
mov dword [0x6561ac], eax
call fcn.005e0b1c
mov dword [0x6561b0], eax
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
jl 0x4773d0
lea ecx, [esp + 0x1b]
push ecx
push str.info_panel_image
lea ecx, [esp + 0x28]
call fcn.00402f20
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0x110], 0x10
call fcn.005b8470
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x10c], 0xffffffff
mov esi, ecx
je 0x477539
cmp eax, 0x80
jbe 0x477511
push ecx
call fcn.005e05ca
jmp 0x477536
lea ebp, [eax - 1]
shr ebp, 3
push 0x655bd8
lea ebp, [ebp*4 + 0x655be0]
call fcn.00401450
mov eax, dword [ebp]
mov dword [esi], eax
mov dword [ebp], esi
mov dword [0x655bd8], ebx
add esp, 4
mov esi, dword [esp + 0x1c]
push esi
mov ecx, 0x6561b4
call fcn.004752f0
xor ebp, ebp
cmp esi, ebx
mov dword [esp + 0x44], ebp
jle 0x47778d
jmp 0x477560
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
push 0x655bd8
mov dword [esp + 0x110], 0x11
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x10c], 0x12
je 0x47759f
mov ecx, dword [eax]
mov dword [0x655be0], ecx
jmp 0x4775a9
push 8
call fcn.00401720
add esp, 4
lea edx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov byte [eax], bl
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
lea eax, [esp + 0x1b]
push eax
push str.info_panel_image
lea ecx, [esp + 0x28]
mov dword [esp + 0x114], 0x13
call fcn.00402f20
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x118]
lea edx, [esp + 0x34]
push edx
push ebp
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x11c], 0x14
call fcn.00476580
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x10c], 0x13
mov esi, ecx
je 0x477657
cmp eax, 0x80
jbe 0x477631
push ecx
call fcn.005e05ca
jmp 0x477654
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov esi, dword [0x6561b8]
cmp esi, dword [0x6561bc]
mov edi, dword [esp + 0x30]
je 0x477712
mov dword [esp + 0x6c], esi
mov dword [esp + 0x2c], esi
cmp esi, ebx
je 0x477707
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov ebp, dword [esp + 0x34]
mov ecx, edi
sub ebp, ecx
lea edi, [ebp + 1]
cmp edi, 0xffffffff
mov byte [esp + 0x10c], 0x16
ja 0x4777e7
cmp edi, ebx
jbe 0x4777e7
cmp edi, 0x80
push edi
jbe 0x4776b9
call fcn.005d0282
jmp 0x4776be
call fcn.00401cc0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add edi, eax
add esp, 4
cmp ecx, edx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], edi
je 0x4776e6
push ebp
mov ecx, edx
push ecx
push eax
call fcn.005e05d0
add esp, 0xc
add eax, ebp
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x44]
mov dword [esi + 4], eax
mov byte [eax], bl
mov eax, dword [esp + 0x40]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
mov esi, dword [0x6561b8]
add esi, 0x14
mov dword [0x6561b8], esi
jmp 0x47772b
push 1
push 1
lea ecx, [esp + 0x23]
push ecx
lea edx, [esp + 0x3c]
push edx
push esi
mov ecx, 0x6561b4
call fcn.00475120
mov eax, dword [esp + 0x38]
sub eax, edi
cmp edi, ebx
mov dword [esp + 0x10c], 0xffffffff
je 0x477775
cmp eax, 0x80
jbe 0x47774f
push edi
call fcn.005e05ca
jmp 0x477772
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
mov dword [esp + 0x44], ebp
jl 0x477560
mov edi, dword [esp + 0x114]
lea ecx, [esp + 0x1b]
push ecx
push str.info_panel_label
lea ecx, [esp + 0x28]
call fcn.00402f20
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0x110], 0x17
call fcn.005b8470
mov ecx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10c], 0xffffffff
mov esi, ecx
je 0x477817
cmp eax, 0x80
jbe 0x4777f1
push ecx
call fcn.005e05ca
jmp 0x477814
push str.basic_string
call fcn.00402a70
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x44], ebx
jle 0x477b71
lea ecx, [esp + 0x4c]
call fcn.004cb350
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x10c], 0x18
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x10c], 0x1a
je 0x47787b
mov ecx, dword [eax]
mov dword [0x655be0], ecx
jmp 0x477885
push 8
call fcn.00401720
add esp, 4
lea edx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov byte [eax], bl
lea eax, [esp + 0x1b]
push eax
push str.info_panel_label
lea ecx, [esp + 0x28]
mov byte [esp + 0x114], 0x1b
call fcn.00402f20
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x124]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x124], 0x1c
call fcn.00476620
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x10c], 0x1b
mov esi, ecx
je 0x477936
cmp eax, 0x80
jbe 0x477910
push ecx
call fcn.005e05ca
jmp 0x477933
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
sub eax, ebp
cmp eax, 5
mov dword [esp + 0x2c], eax
jne 0x4779a1
mov ecx, eax
mov edi, str.score
mov esi, ebp
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4779a1
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x1b]
push eax
push ecx
push edx
mov ecx, 0x656124
call fcn.0040c800
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [0x656130], eax
mov eax, dword [esp + 0x64]
mov dword [0x656134], ecx
mov ecx, dword [esp + 0x68]
mov dword [0x656138], edx
mov dword [0x65613c], eax
mov dword [0x656140], ecx
cmp dword [esp + 0x2c], 5
jne 0x477a69
mov ecx, 5
mov edi, str.lives
mov esi, ebp
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x477a07
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x1b]
push eax
push ecx
push edx
mov ecx, 0x656144
call fcn.0040c800
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [0x656150], eax
mov eax, dword [esp + 0x64]
mov dword [0x656154], ecx
mov ecx, dword [esp + 0x68]
mov dword [0x656158], edx
mov dword [0x65615c], eax
mov dword [0x656160], ecx
cmp dword [esp + 0x2c], 5
jne 0x477a69
mov ecx, 5
mov edi, str.level
mov esi, ebp
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x477a69
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x1b]
push eax
push ecx
push edx
mov ecx, 0x656164
call fcn.0040c800
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [0x656170], eax
mov eax, dword [esp + 0x64]
mov dword [0x656174], ecx
mov ecx, dword [esp + 0x68]
mov dword [0x656178], edx
mov dword [0x65617c], eax
mov dword [0x656180], ecx
cmp dword [esp + 0x2c], 6
jne 0x477acc
mov ecx, 3
mov edi, str.points
mov esi, ebp
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x477acc
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x1b]
push eax
push ecx
push edx
mov ecx, 0x656184
call fcn.0040c800
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [0x656190], eax
mov eax, dword [esp + 0x64]
mov dword [0x656194], ecx
mov ecx, dword [esp + 0x68]
mov dword [0x656198], edx
mov dword [0x65619c], eax
mov dword [0x6561a0], ecx
mov eax, dword [esp + 0x38]
sub eax, ebp
cmp ebp, ebx
je 0x477b0c
cmp eax, 0x80
jbe 0x477ae5
push ebp
call fcn.005e05ca
jmp 0x477b09
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [ebp], edx
mov dword [esi], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x10c], 0xffffffff
mov edi, ecx
je 0x477b5c
cmp eax, 0x80
jbe 0x477b36
push ecx
call fcn.005e05ca
jmp 0x477b59
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x477823
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x100
ret