Function at 0x418b10
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x497a10
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4c1280]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c1280]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov ebx, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], edi
call fcn.0041a1a0
lea esi, [esp + 0x58]
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.00419c70
mov esi, ebp
mov dword [esp + 0x80], 0
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x23], 0
call fcn.0041a800
test al, al
jne 0x418bf0
cmp byte [ebp + 4], al
jne 0x418bcc
mov ecx, dword [ebp]
test ecx, ecx
je 0x418bc1
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418bb0
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418bb0
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418bb7
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x418bc1
mov byte [ebp + 5], al
jmp 0x418bc8
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2b
mov esi, ebp
jne 0x418bd9
mov byte [ebx], 0x2b
jmp 0x418be6
call fcn.00419ae0
cmp al, 0x2d
jne 0x418bf0
mov byte [ebx], al
mov esi, ebp
inc ebx
mov dword [esp + 0x1c], ebx
call fcn.00419b30
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x1b], 0
mov eax, edx
cmp ecx, 0x10
jae 0x418c12
lea eax, [esp + 0x5c]
cmp byte [eax], 0x7f
je 0x418f00
mov eax, edx
cmp ecx, 0x10
jae 0x418c26
lea eax, [esp + 0x5c]
cmp byte [eax], 0
jle 0x418f00
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov byte [esp + 0x2f], al
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
mov dword [esp + 0x50], 1
mov byte [esp + 0x41], 0
mov edi, dword [esp + 0x30]
mov esi, ebp
mov byte [esp + 0x80], 1
xor ebx, ebx
call fcn.0041a800
test al, al
jne 0x418e07
cmp byte [ebp + 4], 0
jne 0x418cb5
mov ecx, dword [ebp]
test ecx, ecx
je 0x418caa
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418c99
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418c99
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418ca0
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x418caa
mov byte [ebp + 5], al
jmp 0x418cb1
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x418d81
cmp byte [ebp + 4], 0
jne 0x418cff
mov ecx, dword [ebp]
test ecx, ecx
je 0x418cf4
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418ce3
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418ce3
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418cea
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x418cf4
mov byte [ebp + 5], al
jmp 0x418cfb
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x418d81
mov edi, dword [esp + 0x24]
cmp edi, 0x24
mov byte [esp + 0x1b], 1
jl 0x418d19
inc dword [esp + 0x28]
jmp 0x418d3f
mov esi, ebp
call fcn.00419ae0
cmp al, 0x30
jne 0x418d28
test edi, edi
je 0x418d3f
mov esi, ebp
call fcn.00419ae0
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
inc edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edi
cmp ebx, dword [esp + 0x50]
jbe 0x418d4a
call fcn.00475d4f
mov eax, dword [esp + 0x40]
mov esi, 0x10
cmp dword [esp + 0x54], esi
jae 0x418d5d
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0x7f
je 0x418dc3
cmp ebx, dword [esp + 0x50]
jbe 0x418d6e
call fcn.00475d4f
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], esi
jae 0x418d7c
lea eax, [esp + 0x40]
inc byte [eax + ebx]
jmp 0x418dc3
cmp ebx, dword [esp + 0x50]
jbe 0x418d8c
call fcn.00475d4f
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x418d9b
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0
je 0x418ddb
cmp byte [esp + 0x2f], 0
je 0x418ddb
mov esi, ebp
call fcn.00419ae0
cmp al, byte [esp + 0x2f]
jne 0x418ddb
push 0
push 1
lea ecx, [esp + 0x44]
call fcn.0040a680
inc ebx
mov esi, ebp
call fcn.00419b30
mov edi, dword [esp + 0x30]
call fcn.0041a800
test al, al
je 0x418c75
test ebx, ebx
je 0x418e07
cmp ebx, dword [esp + 0x50]
jbe 0x418dea
call fcn.00475d4f
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x418df9
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0
jle 0x418e02
inc ebx
jmp 0x418e07
mov byte [esp + 0x23], 1
mov esi, dword [esp + 0x5c]
mov edi, 0x10
cmp dword [esp + 0x70], edi
jae 0x418e1a
lea esi, [esp + 0x5c]
cmp byte [esp + 0x23], 0
jne 0x418e81
test ebx, ebx
jbe 0x418e81
cmp byte [esi], 0x7f
je 0x418e81
sub ebx, 1
je 0x418e4f
cmp ebx, dword [esp + 0x50]
jbe 0x418e3a
call fcn.00475d4f
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], edi
jae 0x418e48
lea eax, [esp + 0x40]
mov cl, byte [esi]
cmp cl, byte [eax + ebx]
jne 0x418e7c
test ebx, ebx
jne 0x418e73
cmp ebx, dword [esp + 0x50]
jbe 0x418e5e
call fcn.00475d4f
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], edi
jae 0x418e6c
lea eax, [esp + 0x40]
mov dl, byte [esi]
cmp dl, byte [eax + ebx]
jl 0x418e7c
cmp byte [esi + 1], 0
jle 0x418e21
inc esi
jmp 0x418e21
mov byte [esp + 0x23], 1
mov byte [esp + 0x80], 0
cmp dword [esp + 0x54], edi
jb 0x418e9c
mov eax, dword [esp + 0x40]
push eax
call fcn.0047295c
add esp, 4
mov edi, dword [esp + 0x30]
cmp byte [esp + 0x1b], 0
je 0x418ebb
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x418ebb
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x1c], eax
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x419107
cmp byte [ebp + 4], al
jne 0x419096
mov ecx, dword [ebp]
test ecx, ecx
je 0x41908b
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x41907a
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x41907a
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x419081
mov edi, dword [esp + 0x30]
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x418ebb
mov ebx, dword [esp + 0x24]
cmp byte [ebp + 4], 0
jne 0x418f53
mov ecx, dword [ebp]
test ecx, ecx
je 0x418f48
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418f37
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418f37
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418f3e
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x418f48
mov byte [ebp + 5], al
jmp 0x418f4f
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x419071
cmp byte [ebp + 4], 0
jne 0x418f9d
mov ecx, dword [ebp]
test ecx, ecx
je 0x418f92
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418f81
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418f81
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418f88
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x418f92
mov byte [ebp + 5], al
jmp 0x418f99
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x419071
cmp ebx, 0x24
jl 0x418fb2
inc dword [esp + 0x28]
jmp 0x41900f
cmp byte [ebp + 4], 0
jne 0x418ff2
mov ecx, dword [ebp]
test ecx, ecx
je 0x418fe7
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x418fd6
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x418fd6
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x418fdd
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x418fe7
mov byte [ebp + 5], al
jmp 0x418fee
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x418ffc
test ebx, ebx
je 0x41900f
mov esi, ebp
call fcn.00419ae0
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x1c], ecx
inc ebx
mov ecx, dword [ebp]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x41904e
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x41903c
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x41903c
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x419043
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x41904e
mov byte [ebp + 4], 0
jmp 0x419059
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.0041a800
test al, al
je 0x418f13
mov dword [esp + 0x24], ebx
jmp 0x418eab
mov dword [esp + 0x24], ebx
jmp 0x418ea0
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x41908b
mov byte [ebp + 5], al
jmp 0x419092
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov bl, byte [ebp + 5]
call eax
cmp bl, al
jne 0x419103
call fcn.0047b1dd
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
mov dl, byte [ecx]
mov byte [eax], dl
mov ecx, dword [ebp]
inc eax
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x4190f8
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4190e6
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4190e6
mov eax, edx
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x4190ed
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x4190f8
mov byte [ebp + 4], 0
jmp 0x419103
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x4191dc
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x4191c5
cmp byte [ebp + 4], 0
jne 0x419162
mov ecx, dword [ebp]
test ecx, ecx
je 0x419157
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x419146
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x419146
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x41914d
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x419157
mov byte [ebp + 5], al
jmp 0x41915e
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x4191c5
mov ecx, dword [ebp]
dec dword [esp + 0x28]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x4191ab
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x419199
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x419199
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x4191a0
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x4191ab
mov byte [ebp + 4], 0
jmp 0x4191b6
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.0041a800
test al, al
je 0x419122
cmp dword [esp + 0x28], 0
jge 0x4191dc
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x30
inc eax
inc dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x41932e
cmp byte [ebp + 4], 0
jne 0x41922b
mov ecx, dword [ebp]
test ecx, ecx
je 0x419220
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x41920f
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x41920f
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x419216
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x419220
mov byte [ebp + 5], al
jmp 0x419227
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x41932e
cmp byte [ebp + 4], 0
jne 0x419275
mov ecx, dword [ebp]
test ecx, ecx
je 0x41926a
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x419259
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x419259
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x419260
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x41926a
mov byte [ebp + 5], al
jmp 0x419271
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x41932e
cmp ebx, 0x24
jge 0x4192d3
cmp byte [ebp + 4], 0
jne 0x4192c4
mov ecx, dword [ebp]
test ecx, ecx
je 0x4192b9
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4192a8
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4192a8
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4192af
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4192b9
mov byte [ebp + 5], al
jmp 0x4192c0
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov eax, dword [esp + 0x1c]
mov cl, byte [ebp + 5]
mov byte [eax], cl
inc eax
mov dword [esp + 0x1c], eax
inc ebx
mov ecx, dword [ebp]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x419312
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x419300
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x419300
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x419307
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x419312
mov byte [ebp + 4], 0
jmp 0x41931d
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.0041a800
test al, al
je 0x4191eb
jmp 0x419339
cmp byte [esp + 0x1b], 0
je 0x419739
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x419739
cmp byte [ebp + 4], al
jne 0x419387
mov ecx, dword [ebp]
test ecx, ecx
je 0x41937c
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x41936b
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x41936b
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x419372
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x41937c
mov byte [ebp + 5], al
jmp 0x419383
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x65
je 0x4193d7
cmp byte [ebp + 4], 0
jne 0x4193cd
mov ecx, dword [ebp]
test ecx, ecx
je 0x4193c2
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4193b1
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4193b1
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4193b8
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4193c2
mov byte [ebp + 5], al
jmp 0x4193c9
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x45
jne 0x419739
mov ebx, dword [esp + 0x1c]
mov byte [ebx], 0x65
mov ecx, dword [ebp]
inc ebx
mov dword [esp + 0x1c], ebx
test ecx, ecx
je 0x41941d
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x41940b
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x41940b
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x419412
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x41941d
mov byte [ebp + 4], 0
jmp 0x419428
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
mov byte [esp + 0x1b], 0
mov dword [esp + 0x24], 0
call fcn.0041a800
test al, al
jne 0x419521
cmp byte [ebp + 4], al
jne 0x419483
mov ecx, dword [ebp]
test ecx, ecx
je 0x419478
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x419467
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x419467
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x41946e
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x419478
mov byte [ebp + 5], al
jmp 0x41947f
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2b
jne 0x41948e
mov byte [ebx], 0x2b
jmp 0x4194d7
cmp byte [ebp + 4], 0
jne 0x4194ce
mov ecx, dword [ebp]
test ecx, ecx
je 0x4194c3
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4194b2
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4194b2
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4194b9
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4194c3
mov byte [ebp + 5], al
jmp 0x4194ca
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2d
jne 0x419521
mov byte [ebx], 0x2d
mov ecx, dword [ebp]
inc ebx
mov dword [esp + 0x1c], ebx
test ecx, ecx
je 0x419516
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x419504
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x419504
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x41950b
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x419516
mov byte [ebp + 4], 0
jmp 0x419521
mov byte [ebp + 4], 1
mov dword [ebp], 0
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x4195e4
cmp byte [ebp + 4], 0
jne 0x419570
mov ecx, dword [ebp]
test ecx, ecx
je 0x419565
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x419554
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x419554
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x41955b
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x419565
mov byte [ebp + 5], al
jmp 0x41956c
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x4195d1
mov ecx, dword [ebp]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x4195b5
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x4195a3
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x4195a3
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x4195aa
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x4195b5
mov byte [ebp + 4], 0
jmp 0x4195c0
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.0041a800
test al, al
je 0x419530
jmp 0x4195d8
cmp byte [esp + 0x1b], 0
je 0x4195e4
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x1c], eax
mov esi, ebp
call fcn.0041a800
test al, al
jne 0x419739
mov ebx, dword [esp + 0x1c]
cmp byte [ebp + 4], 0
jne 0x419637
mov ecx, dword [ebp]
test ecx, ecx
je 0x41962c
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x41961b
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x41961b
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x419622
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x41962c
mov byte [ebp + 5], al
jmp 0x419633
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x419735
cmp byte [ebp + 4], 0
jne 0x419681
mov ecx, dword [ebp]
test ecx, ecx
je 0x419676
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x419665
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x419665
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x41966c
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x419676
mov byte [ebp + 5], al
jmp 0x41967d
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x419735
cmp dword [esp + 0x24], 8
jge 0x4196dc
cmp byte [ebp + 4], 0
jne 0x4196d2
mov ecx, dword [ebp]
test ecx, ecx
je 0x4196c7
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4196b6
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4196b6
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4196bd
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4196c7
mov byte [ebp + 5], al
jmp 0x4196ce
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov cl, byte [ebp + 5]
mov byte [ebx], cl
inc ebx
inc dword [esp + 0x24]
mov ecx, dword [ebp]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x41971b
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x419709
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x419709
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x419710
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x41971b
mov byte [ebp + 4], 0
jmp 0x419726
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.0041a800
test al, al
je 0x4195f7
mov dword [esp + 0x1c], ebx
cmp byte [esp + 0x23], 0
jne 0x419747
cmp byte [esp + 0x1b], 0
jne 0x41974d
mov eax, dword [esp + 0x38]
jmp 0x419751
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x70], 0x10
mov byte [eax], 0
jb 0x419768
mov eax, dword [esp + 0x5c]
push eax
call fcn.0047295c
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00472a79
add esp, 0x70
ret