Function at 0x423990
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x44c740
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x45d600]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45d600]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov ebx, ecx
mov edi, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
call fcn.00424d80
lea esi, [esp + 0x58]
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.00424b70
mov edi, dword [esp + 0x30]
mov esi, ebp
mov dword [esp + 0x80], 0
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x23], 0
call fcn.00425430
test al, al
jne 0x423a76
cmp byte [ebp + 4], al
jne 0x423a52
mov ecx, dword [ebp]
test ecx, ecx
je 0x423a47
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423a36
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423a36
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423a3d
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x423a47
mov byte [ebp + 5], al
jmp 0x423a4e
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2b
mov esi, ebp
jne 0x423a5f
mov byte [ebx], 0x2b
jmp 0x423a6c
call fcn.004249e0
cmp al, 0x2d
jne 0x423a76
mov byte [ebx], al
mov esi, ebp
inc ebx
mov dword [esp + 0x1c], ebx
call fcn.00424a30
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 0x423a98
lea eax, [esp + 0x5c]
cmp byte [eax], 0x7f
je 0x423d34
mov eax, edx
cmp ecx, 0x10
jae 0x423aac
lea eax, [esp + 0x5c]
cmp byte [eax], 0
jle 0x423d34
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.00425430
test al, al
jne 0x423c90
cmp byte [ebp + 4], 0
jne 0x423b3b
mov ecx, dword [ebp]
test ecx, ecx
je 0x423b30
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423b1f
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423b1f
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423b26
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x423b30
mov byte [ebp + 5], al
jmp 0x423b37
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x423c07
cmp byte [ebp + 4], 0
jne 0x423b85
mov ecx, dword [ebp]
test ecx, ecx
je 0x423b7a
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423b69
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423b69
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423b70
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp eax, 0xffffffff
je 0x423b7a
mov byte [ebp + 5], al
jmp 0x423b81
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x423c07
mov edi, dword [esp + 0x24]
cmp edi, 0x24
mov byte [esp + 0x1b], 1
jl 0x423b9f
inc dword [esp + 0x28]
jmp 0x423bc5
mov esi, ebp
call fcn.004249e0
cmp al, 0x30
jne 0x423bae
test edi, edi
je 0x423bc5
mov esi, ebp
call fcn.004249e0
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 0x423bd0
call fcn.00435e19
mov eax, dword [esp + 0x40]
mov esi, 0x10
cmp dword [esp + 0x54], esi
jae 0x423be3
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0x7f
je 0x423c4c
cmp ebx, dword [esp + 0x50]
jbe 0x423bf4
call fcn.00435e19
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], esi
jae 0x423c02
lea eax, [esp + 0x40]
inc byte [eax + ebx]
jmp 0x423c4c
cmp ebx, dword [esp + 0x50]
jbe 0x423c12
call fcn.00435e19
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x423c21
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0
je 0x423c64
cmp byte [esp + 0x2f], 0
je 0x423c64
mov esi, ebp
call fcn.004249e0
cmp al, byte [esp + 0x2f]
jne 0x423c64
push 0
mov eax, 1
lea edi, [esp + 0x40]
call fcn.004190c0
inc ebx
mov esi, ebp
call fcn.00424a30
mov edi, dword [esp + 0x30]
call fcn.00425430
test al, al
je 0x423afb
test ebx, ebx
je 0x423c90
cmp ebx, dword [esp + 0x50]
jbe 0x423c73
call fcn.00435e19
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x423c82
lea eax, [esp + 0x40]
cmp byte [eax + ebx], 0
jle 0x423c8b
inc ebx
jmp 0x423c90
mov byte [esp + 0x23], 1
mov esi, dword [esp + 0x5c]
mov edi, 0x10
cmp dword [esp + 0x70], edi
jae 0x423ca3
lea esi, [esp + 0x5c]
cmp byte [esp + 0x23], 0
jne 0x423d10
lea ebx, [ebx]
test ebx, ebx
jbe 0x423d10
cmp byte [esi], 0x7f
je 0x423d10
sub ebx, 1
je 0x423cde
cmp ebx, dword [esp + 0x50]
jbe 0x423cc9
call fcn.00435e19
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], edi
jae 0x423cd7
lea eax, [esp + 0x40]
mov cl, byte [esi]
cmp cl, byte [eax + ebx]
jne 0x423d0b
test ebx, ebx
jne 0x423d02
cmp ebx, dword [esp + 0x50]
jbe 0x423ced
call fcn.00435e19
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], edi
jae 0x423cfb
lea eax, [esp + 0x40]
mov dl, byte [esi]
cmp dl, byte [eax + ebx]
jl 0x423d0b
cmp byte [esi + 1], 0
jle 0x423cb0
inc esi
jmp 0x423cb0
mov byte [esp + 0x23], 1
mov byte [esp + 0x80], 0
cmp dword [esp + 0x54], edi
jb 0x423ea6
mov eax, dword [esp + 0x40]
push eax
call fcn.00435e91
add esp, 4
jmp 0x423ea6
mov esi, ebp
call fcn.00425430
test al, al
jne 0x423ec1
mov ebx, dword [esp + 0x24]
cmp byte [ebp + 4], 0
jne 0x423d87
mov ecx, dword [ebp]
test ecx, ecx
je 0x423d7c
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423d6b
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423d6b
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423d72
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x423d7c
mov byte [ebp + 5], al
jmp 0x423d83
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x423ea2
cmp byte [ebp + 4], 0
jne 0x423dd1
mov ecx, dword [ebp]
test ecx, ecx
je 0x423dc6
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423db5
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423db5
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423dbc
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x423dc6
mov byte [ebp + 5], al
jmp 0x423dcd
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x423ea2
cmp ebx, 0x24
jl 0x423de6
inc dword [esp + 0x28]
jmp 0x423e43
cmp byte [ebp + 4], 0
jne 0x423e26
mov ecx, dword [ebp]
test ecx, ecx
je 0x423e1b
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423e0a
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423e0a
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423e11
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x423e1b
mov byte [ebp + 5], al
jmp 0x423e22
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x423e30
test ebx, ebx
je 0x423e43
mov esi, ebp
call fcn.004249e0
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 0x423e82
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x423e70
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x423e70
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 0x423e77
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x423e82
mov byte [ebp + 4], 0
jmp 0x423e8d
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.00425430
test al, al
je 0x423d47
mov dword [esp + 0x24], ebx
jmp 0x423eb1
mov dword [esp + 0x24], ebx
cmp byte [esp + 0x1b], 0
je 0x423ec1
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x423ec1
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x30]
mov esi, ebp
call fcn.00425430
test al, al
jne 0x423f80
cmp byte [ebp + 4], al
jne 0x423f13
mov ecx, dword [ebp]
test ecx, ecx
je 0x423f08
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423ef7
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423ef7
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423efe
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x423f08
mov byte [ebp + 5], al
jmp 0x423f0f
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 0x423f80
call fcn.00437636
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 0x423f75
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423f63
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423f63
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 0x423f6a
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x423f75
mov byte [ebp + 4], 0
jmp 0x423f80
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x424055
mov esi, ebp
call fcn.00425430
test al, al
jne 0x42403e
cmp byte [ebp + 4], 0
jne 0x423fdb
mov ecx, dword [ebp]
test ecx, ecx
je 0x423fd0
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x423fbf
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x423fbf
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x423fc6
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x423fd0
mov byte [ebp + 5], al
jmp 0x423fd7
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x42403e
mov ecx, dword [ebp]
dec dword [esp + 0x28]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x424024
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x424012
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x424012
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 0x424019
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x424024
mov byte [ebp + 4], 0
jmp 0x42402f
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.00425430
test al, al
je 0x423f9b
cmp dword [esp + 0x28], 0
jge 0x424055
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.00425430
test al, al
jne 0x4241a7
cmp byte [ebp + 4], 0
jne 0x4240a4
mov ecx, dword [ebp]
test ecx, ecx
je 0x424099
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x424088
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x424088
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x42408f
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x424099
mov byte [ebp + 5], al
jmp 0x4240a0
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x4241a7
cmp byte [ebp + 4], 0
jne 0x4240ee
mov ecx, dword [ebp]
test ecx, ecx
je 0x4240e3
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4240d2
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4240d2
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4240d9
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4240e3
mov byte [ebp + 5], al
jmp 0x4240ea
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x4241a7
cmp ebx, 0x24
jge 0x42414c
cmp byte [ebp + 4], 0
jne 0x42413d
mov ecx, dword [ebp]
test ecx, ecx
je 0x424132
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x424121
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x424121
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x424128
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x424132
mov byte [ebp + 5], al
jmp 0x424139
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 0x42418b
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x424179
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x424179
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 0x424180
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x42418b
mov byte [ebp + 4], 0
jmp 0x424196
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.00425430
test al, al
je 0x424064
jmp 0x4241b2
cmp byte [esp + 0x1b], 0
je 0x4245b2
mov esi, ebp
call fcn.00425430
test al, al
jne 0x4245b2
cmp byte [ebp + 4], al
jne 0x424200
mov ecx, dword [ebp]
test ecx, ecx
je 0x4241f5
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4241e4
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4241e4
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4241eb
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4241f5
mov byte [ebp + 5], al
jmp 0x4241fc
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x65
je 0x424250
cmp byte [ebp + 4], 0
jne 0x424246
mov ecx, dword [ebp]
test ecx, ecx
je 0x42423b
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x42422a
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x42422a
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x424231
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x42423b
mov byte [ebp + 5], al
jmp 0x424242
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x45
jne 0x4245b2
mov ebx, dword [esp + 0x1c]
mov byte [ebx], 0x65
mov ecx, dword [ebp]
inc ebx
mov dword [esp + 0x1c], ebx
test ecx, ecx
je 0x424296
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x424284
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x424284
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 0x42428b
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x424296
mov byte [ebp + 4], 0
jmp 0x4242a1
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
mov byte [esp + 0x1b], 0
mov dword [esp + 0x24], 0
call fcn.00425430
test al, al
jne 0x42439a
cmp byte [ebp + 4], al
jne 0x4242fc
mov ecx, dword [ebp]
test ecx, ecx
je 0x4242f1
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4242e0
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4242e0
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4242e7
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4242f1
mov byte [ebp + 5], al
jmp 0x4242f8
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2b
jne 0x424307
mov byte [ebx], 0x2b
jmp 0x424350
cmp byte [ebp + 4], 0
jne 0x424347
mov ecx, dword [ebp]
test ecx, ecx
je 0x42433c
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x42432b
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x42432b
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x424332
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x42433c
mov byte [ebp + 5], al
jmp 0x424343
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x2d
jne 0x42439a
mov byte [ebx], 0x2d
mov ecx, dword [ebp]
inc ebx
mov dword [esp + 0x1c], ebx
test ecx, ecx
je 0x42438f
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x42437d
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x42437d
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 0x424384
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x42438f
mov byte [ebp + 4], 0
jmp 0x42439a
mov byte [ebp + 4], 1
mov dword [ebp], 0
mov esi, ebp
call fcn.00425430
test al, al
jne 0x42445d
cmp byte [ebp + 4], 0
jne 0x4243e9
mov ecx, dword [ebp]
test ecx, ecx
je 0x4243de
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4243cd
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4243cd
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4243d4
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4243de
mov byte [ebp + 5], al
jmp 0x4243e5
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jne 0x42444a
mov ecx, dword [ebp]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x42442e
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x42441c
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x42441c
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 0x424423
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x42442e
mov byte [ebp + 4], 0
jmp 0x424439
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.00425430
test al, al
je 0x4243a9
jmp 0x424451
cmp byte [esp + 0x1b], 0
je 0x42445d
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x1c], eax
mov esi, ebp
call fcn.00425430
test al, al
jne 0x4245b2
mov ebx, dword [esp + 0x1c]
cmp byte [ebp + 4], 0
jne 0x4244b0
mov ecx, dword [ebp]
test ecx, ecx
je 0x4244a5
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x424494
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x424494
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x42449b
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4244a5
mov byte [ebp + 5], al
jmp 0x4244ac
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x30
jl 0x4245ae
cmp byte [ebp + 4], 0
jne 0x4244fa
mov ecx, dword [ebp]
test ecx, ecx
je 0x4244ef
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4244de
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4244de
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4244e5
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x4244ef
mov byte [ebp + 5], al
jmp 0x4244f6
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp byte [ebp + 5], 0x39
jg 0x4245ae
cmp dword [esp + 0x24], 8
jge 0x424555
cmp byte [ebp + 4], 0
jne 0x42454b
mov ecx, dword [ebp]
test ecx, ecx
je 0x424540
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x42452f
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x42452f
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x424536
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp eax, 0xffffffff
je 0x424540
mov byte [ebp + 5], al
jmp 0x424547
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 0x424594
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x424582
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x424582
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 0x424589
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xffffffff
je 0x424594
mov byte [ebp + 4], 0
jmp 0x42459f
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov esi, ebp
call fcn.00425430
test al, al
je 0x424470
mov dword [esp + 0x1c], ebx
cmp byte [esp + 0x23], 0
jne 0x4245c0
cmp byte [esp + 0x1b], 0
jne 0x4245c6
mov eax, dword [esp + 0x38]
jmp 0x4245ca
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x70], 0x10
mov byte [eax], 0
jb 0x4245e1
mov eax, dword [esp + 0x5c]
push eax
call fcn.00435e91
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.0043581d
add esp, 0x70
ret