Function at 0x425140
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2da0
call fcn.00436460
mov eax, dword [0x4544f0]
xor eax, ebp
mov dword [ebp - 0x7c], eax
push esi
mov dword [ebp - 0x18], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x48], 0
cmp dword [0x4540b8], 0
je 0x425182
mov dword [ebp - 0x2ce4], 1
jmp 0x425198
call dword [0x4540b4]
mov dword [0x4540b8], eax
mov eax, dword [0x4540b8]
mov dword [ebp - 0x2ce4], eax
cmp dword [ebp + 8], 0
jne 0x4251a6
or eax, 0xffffffff
jmp 0x42a363
cmp dword [ebp + 0xc], 0
jne 0x4251b4
or eax, 0xffffffff
jmp 0x42a363
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x3c], 2
je 0x4251d9
push 0
push 2
mov edx, dword [ebp + 8]
push edx
call fcn.0042ad60
add esp, 0xc
test eax, eax
jge 0x4251d9
or eax, 0xffffffff
jmp 0x42a363
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
or ecx, 0x20
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [eax + 8], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
jne 0x42523c
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 4
jne 0x42523c
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x2ca8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [edx + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
add eax, 0x400
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x288c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x4c], 0xffffffff
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x42a05c
cmp dword [ebp - 0x2c], 0x25
je 0x4254e2
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4252d8
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
cmp eax, 0x25
je 0x4252d8
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x4252b8
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2cc0]
sub eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2c]
jl 0x42545d
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2ce8], ecx
mov edx, dword [ebp - 0x2ce8]
sub edx, 1
mov dword [ebp - 0x2ce8], edx
cmp dword [ebp - 0x2ce8], 6
ja case.default.0x42531d
mov eax, dword [ebp - 0x2ce8]
jmp dword [eax*4 + 0x42a374]
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x2cb8]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x2cb8]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
jmp 0x42545b
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x4254db
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
sub eax, dword [edx]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
or ecx, 0x8000
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004222c0
add esp, 0xc
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setle al
sub eax, 1
and eax, dword [ebp - 4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
je 0x4254db
jmp 0x42a14c
jmp 0x42528c
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x2cbc], 0xffffffff
mov ecx, dword [ebp - 0x2cbc]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x289c], ecx
mov edx, dword [ebp - 0x289c]
mov dword [ebp - 0x6c], edx
mov eax, dword [str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ__]
mov dword [ebp - 0x2ccc], eax
mov dword [ebp - 0x2cb4], 0
mov ecx, dword [ebp - 0x2cb4]
mov dword [ebp - 0x2cb0], ecx
lea edx, [ebp - 0x85]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28a0], eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2cac], ecx
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x2cec], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x2cec]
mov dword [ebp - 0x2cf0], eax
cmp dword [ebp - 0x2cf0], 0x7a
ja case.0x4255ae.1
mov ecx, dword [ebp - 0x2cf0]
movzx edx, byte [ecx + 0x42a3e0]
jmp dword [edx*4 + 0x42a390]
mov eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2cc0]
jae 0x4255dd
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x25
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x42564d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
push 0x25
mov ecx, dword [ebp + 8]
push ecx
call fcn.00420380
add esp, 8
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setge dl
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
cmp dword [ebp - 4], 0
jge 0x42564d
jmp 0x42a14c
jmp 0x42a05c
mov ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2cc0]
jae 0x42567a
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x25
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x4256e9
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
push 0x25
mov edx, dword [ebp + 8]
push edx
call fcn.00420380
add esp, 8
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setge al
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
cmp dword [ebp - 4], 0
jge 0x4256e9
jmp 0x42a14c
jmp 0x42528c
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
mov dword [ebp - 0x2cf4], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x2cf4]
mov dword [ebp - 0x2cf8], eax
cmp dword [ebp - 0x2cf8], 0
je 0x42573c
cmp dword [ebp - 0x2cf8], 0x28
je 0x425758
cmp dword [ebp - 0x2cf8], 0x29
je 0x425763
jmp 0x42595f
mov ecx, dword [ebp - 0x68]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x2cac], 0
jmp 0x42556d
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
jmp 0x4256fb
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
je 0x425770
jmp 0x4256fb
mov ecx, dword [ebp - 0x68]
movsx edx, byte [ecx]
cmp edx, 0x2a
je 0x42578f
mov eax, dword [ebp + 0xc]
sub eax, 1
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x2cac], eax
jmp 0x42595a
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x68]
add edx, 1
push edx
call dword [0x4540c0]
add esp, 8
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x425810
cmp dword [ebp - 0x34], 0
jne 0x4257dc
push 0
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [0x4540bc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x4257dc
jmp 0x42a05c
cmp dword [ebp - 0x2c], 0
jge 0x4257f6
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2cfc], eax
jmp 0x425805
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2cfc], edx
mov eax, dword [ebp - 0x2cfc]
mov dword [ebp - 0x2c], eax
jmp 0x42581f
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x34], 0
je 0x42584d
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x58
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + eax + 0x38]
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x58
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + eax + 0x18]
mov dword [ebp - 0x2cac], edx
jmp 0x42595a
cmp dword [ebp - 0xc], 0
je 0x425930
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
je 0x425930
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x14], 0x28
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x1c], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x20], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x24], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x28], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x2c], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x30], 0
mov ecx, dword [ebp - 0xc]
push ecx
lea edx, [ebp - 0x60]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 4]
call edx
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x4258eb
jmp 0x42a05c
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1c]
and ecx, 0x20000
jne 0x4258fb
jmp 0x425930
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], 0
je 0x42592e
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2cac], ecx
cmp dword [ebp - 0x2cac], 0
jge 0x42592e
mov edx, dword [ebp - 0x68]
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x2cac], eax
jmp 0x42595a
mov eax, dword [ebp + 0x10]
add eax, 4
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], 0
je 0x42595a
mov eax, dword [ebp - 0x68]
push eax
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x2cac], eax
jmp 0x42556d
jmp 0x4256fb
mov ecx, dword [ebp - 0x1c]
and ecx, 0xfffffdff
or ecx, 0x40
mov dword [ebp - 0x1c], ecx
jmp 0x42556d
mov edx, dword [ebp - 0x1c]
and edx, 0x40
jne 0x42598b
mov eax, dword [ebp - 0x1c]
or eax, 0x200
mov dword [ebp - 0x1c], eax
jmp 0x42556d
mov ecx, dword [ebp - 0x1c]
and ecx, 0x80
jne 0x4259a7
mov edx, dword [ebp - 0x1c]
or edx, 0x100
mov dword [ebp - 0x1c], edx
jmp 0x42556d
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffeff
or eax, 0x80
mov dword [ebp - 0x1c], eax
jmp 0x42556d
mov ecx, dword [ebp - 0x1c]
or ecx, 0x400
mov dword [ebp - 0x1c], ecx
jmp 0x42556d
cmp dword [ebp - 8], 0
jne 0x425a4e
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2cd0], eax
cmp dword [ebp - 0x2cd0], 0
je 0x425a4e
mov edx, dword [ebp - 0x2cd0]
cmp dword [edx], 0
je 0x425a1c
mov eax, dword [ebp - 0x2cd0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x425a1c
mov eax, dword [ebp - 0x2cd0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x48]
test eax, eax
je 0x425a4e
mov ecx, dword [ebp - 0x2cd0]
cmp dword [ecx + 4], 0
je 0x425a4e
mov edx, dword [ebp - 0x2cd0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x425a4e
mov edx, dword [ebp - 0x2cd0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], 0
je 0x425a60
mov edx, dword [ebp - 0x1c]
or edx, 0x800
mov dword [ebp - 0x1c], edx
jmp 0x42556d
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jne 0x425a8b
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x2e
je 0x425a86
mov dword [ebp - 0x74], 0
jmp 0x425b0f
cmp dword [ebp - 0x14], 2
jne 0x425b0f
mov dword [ebp - 0x44], 0
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x63
je 0x425aae
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
cmp eax, 0x73
jne 0x425ab3
jmp 0x42556d
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
test edx, edx
je 0x425b0f
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
push ecx
call dword [sym.imp.MSVCR90.dll_isalnum]
add esp, 4
test eax, eax
jne 0x425b0f
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + 1]
cmp eax, 0x63
je 0x425ae9
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 1]
cmp edx, 0x73
jne 0x425b0f
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x2a
jne 0x425af8
jmp 0x425b4c
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x42556d
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
push eax
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x425b3c
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp case.0x4255ae.49
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x2a
je 0x425b4c
jmp 0x42556d
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [0x4540c0]
add esp, 8
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x425bdc
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp dword [ebp - 0x34], 0
jne 0x425ba8
push 0
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [0x4540bc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x425ba8
jmp 0x42a05c
cmp dword [ebp - 0x2c], 0
jge 0x425bc2
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d00], ecx
jmp 0x425bd1
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2d00], eax
mov ecx, dword [ebp - 0x2d00]
mov dword [ebp - 0x2c], ecx
jmp 0x425beb
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x34], 0
je 0x425c06
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x58
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + ecx + 0x38]
mov dword [ebp - 0x18], eax
jmp 0x425d15
cmp dword [ebp - 0xc], 0
je 0x425ce5
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x425ce5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x10]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x14], 0x2e
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x18], edx
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x28], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x2c], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x30], 0
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x60]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 4]
call ecx
add esp, 0xc
test eax, eax
jge 0x425c9e
jmp 0x42a05c
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x425cb3
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x425ce3
cmp dword [ebp - 0x14], 2
jg 0x425cd0
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x2d04], ecx
jmp 0x425cda
mov dword [ebp - 0x2d04], 0
mov edx, dword [ebp - 0x2d04]
mov dword [ebp - 0x18], edx
jmp 0x425d15
cmp dword [ebp - 0x14], 2
jg 0x425d02
mov eax, dword [ebp + 0x10]
add eax, 4
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x2d08], edx
jmp 0x425d0c
mov dword [ebp - 0x2d08], 0
mov eax, dword [ebp - 0x2d08]
mov dword [ebp - 0x18], eax
jmp 0x425da7
mov ecx, dword [ebp - 0x78]
sub ecx, 0x30
mov dword [ebp - 0x18], ecx
jmp 0x425d2e
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
push ecx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x425d57
mov edx, dword [ebp - 0x18]
imul edx, edx, 0xa
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
lea edx, [edx + ecx - 0x30]
mov dword [ebp - 0x18], edx
jmp 0x425d25
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x425da7
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp dword [ebp - 0x34], 0
jne 0x425d96
push 0
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [0x4540bc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x425d96
jmp 0x42a05c
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x2cbc], eax
jmp 0x42556d
cmp dword [ebp - 0x14], 0
jne 0x425ddd
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x289c], ecx
cmp dword [ebp - 0x289c], 0
jge 0x425ddb
mov edx, dword [ebp - 0x289c]
neg edx
mov dword [ebp - 0x289c], edx
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffdff
or eax, 0x40
mov dword [ebp - 0x1c], eax
jmp 0x425df7
cmp dword [ebp - 0x14], 1
jne 0x425deb
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x74], ecx
jmp 0x425df7
cmp dword [ebp - 0x14], 2
jne 0x425df7
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x44], edx
jmp 0x42556d
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x1c]
and eax, 0xffe61fc7
or eax, 0x80000
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x425e6c
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
mov dword [ebp - 0x2c], ecx
jmp 0x425e44
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x425e67
mov eax, dword [ebp - 0x6c]
imul eax, eax, 0xa
mov ecx, dword [ebp - 0x2c]
lea edx, [eax + ecx - 0x30]
mov dword [ebp - 0x6c], edx
jmp 0x425e32
jmp 0x426003
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x2a
jne 0x426003
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp + 0xc]
add eax, 1
push eax
call dword [0x4540c0]
add esp, 8
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x24
jne 0x425f05
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x34], 0
jne 0x425ed1
push 0
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x50]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [0x4540bc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x425ed1
jmp 0x42a05c
cmp dword [ebp - 0x2c], 0
jge 0x425eeb
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d0c], edx
jmp 0x425efa
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d0c], ecx
mov edx, dword [ebp - 0x2d0c]
mov dword [ebp - 0x2c], edx
jmp 0x425f14
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x34], 0
je 0x425f2f
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x58
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + edx + 0x38]
mov dword [ebp - 0x6c], ecx
jmp 0x426003
cmp dword [ebp - 0xc], 0
je 0x425ff1
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x425ff1
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x14], 0x49
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x18], 4
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x28], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x2c], 0
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x30], 0
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x60]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 4]
call ecx
add esp, 0xc
test eax, eax
jge 0x425fc8
jmp 0x42a05c
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x425fdd
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], ecx
jmp 0x425fef
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x6c], ecx
jmp 0x426003
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x6c], ecx
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x6c
jne 0x42603c
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x1c]
or eax, 0x8000
mov dword [ebp - 0x1c], eax
jmp 0x426048
mov ecx, dword [ebp - 0x1c]
or ecx, 0x4000
mov dword [ebp - 0x1c], ecx
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x68
jne 0x42607f
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x1c]
or eax, 8
mov dword [ebp - 0x1c], eax
jmp 0x42608b
mov ecx, dword [ebp - 0x1c]
or ecx, 0x2000
mov dword [ebp - 0x1c], ecx
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
or edx, 0x10000
mov dword [ebp - 0x1c], edx
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov eax, dword [ebp - 0x1c]
and eax, 0xffe61fc7
or eax, 0x100000
mov dword [ebp - 0x1c], eax
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov ecx, dword [ebp - 0x1c]
and ecx, 0xffe61fc7
or ecx, 0x20
mov dword [ebp - 0x1c], ecx
jmp 0x42556d
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
or edx, 0x10
mov dword [ebp - 0x1c], edx
jmp 0x42556d
mov eax, dword [ebp - 0x1c]
and eax, 0x11e038
je 0x426254
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4542c4]
and edx, 3
jne 0x426127
cmp dword [ebp - 0x78], 0x6e
jne 0x42620d
mov eax, dword [ebp - 0x1c]
and eax, 0x8000
je 0x426140
mov dword [ebp - 0x2d10], 8
jmp 0x426202
mov ecx, dword [ebp - 0x1c]
and ecx, 0x4000
je 0x42615a
mov dword [ebp - 0x2d14], 4
jmp 0x4261f6
mov edx, dword [ebp - 0x1c]
and edx, 0x2000
je 0x426171
mov dword [ebp - 0x2d18], 2
jmp 0x4261ea
mov eax, dword [ebp - 0x1c]
and eax, 8
je 0x426185
mov dword [ebp - 0x2d1c], 1
jmp 0x4261de
mov ecx, dword [ebp - 0x1c]
and ecx, 0x100000
je 0x42619c
mov dword [ebp - 0x2d20], 8
jmp 0x4261d2
mov edx, dword [ebp - 0x1c]
and edx, 0x10
je 0x4261b0
mov dword [ebp - 0x2d24], 4
jmp 0x4261c6
mov eax, dword [ebp - 0x1c]
and eax, 0x20
neg eax
sbb eax, eax
and eax, 5
add eax, 0xffffffff
mov dword [ebp - 0x2d24], eax
mov ecx, dword [ebp - 0x2d24]
mov dword [ebp - 0x2d20], ecx
mov edx, dword [ebp - 0x2d20]
mov dword [ebp - 0x2d1c], edx
mov eax, dword [ebp - 0x2d1c]
mov dword [ebp - 0x2d18], eax
mov ecx, dword [ebp - 0x2d18]
mov dword [ebp - 0x2d14], ecx
mov edx, dword [ebp - 0x2d14]
mov dword [ebp - 0x2d10], edx
mov eax, dword [ebp - 0x2d10]
mov dword [ebp - 0x6c], eax
jmp 0x426254
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4542c4]
and edx, 4
je 0x426254
mov eax, dword [ebp - 0x1c]
and eax, 0x10000
je 0x426232
mov dword [ebp - 0x2d28], 8
jmp 0x42624b
mov ecx, dword [ebp - 0x1c]
and ecx, 0xc000
neg ecx
sbb ecx, ecx
and ecx, 9
add ecx, 0xffffffff
mov dword [ebp - 0x2d28], ecx
mov edx, dword [ebp - 0x2d28]
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x2cbc], 0
jge 0x426271
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d2c], ecx
jmp 0x426283
mov edx, dword [ebp - 0x2cbc]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2d2c], eax
mov ecx, dword [ebp - 0x2d2c]
mov dword [ebp - 0x2cbc], ecx
cmp dword [ebp - 0x34], 0
je 0x42630b
cmp dword [ebp - 0xc], 0
je 0x4262d9
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x4262d9
mov eax, dword [ebp - 0x2cbc]
imul eax, eax, 0x58
mov ecx, dword [ebp - 0x2cbc]
imul ecx, ecx, 0x58
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x34]
mov eax, dword [edx + eax + 0x14]
cmp eax, dword [esi + ecx + 0x40]
je 0x4262d9
mov ecx, dword [ebp - 0x2cbc]
imul ecx, ecx, 0x58
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + ecx + 0x14]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x2cbc]
imul ecx, ecx, 0x58
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + ecx + 0x38]
mov ecx, dword [edx + ecx + 0x3c]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x2cbc]
imul edx, edx, 0x58
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + edx + 0x18]
mov dword [ebp - 0x6c], ecx
jmp case.0x4265a2.2
cmp dword [ebp - 0xc], 0
je 0x426569
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x426569
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x78]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x1ffff8
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x1c], edx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x289c]
mov dword [ecx + 0x20], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x74]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x44]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x68]
mov dword [ecx + 0x2c], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2cac]
mov dword [eax + 0x30], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
sub eax, dword [edx]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0xffffffc7
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 1
jne 0x4263fc
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 0
je 0x4263d6
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2d30], ecx
jmp 0x4263e2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2d30], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2d30]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x2d30]
mov dword [ebp - 0x2d34], eax
jmp 0x426475
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x3c], 2
jne 0x426445
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x14]
and eax, 0x20
je 0x42641f
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x2d38], edx
jmp 0x42642b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2d38], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2d38]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x2d38]
mov dword [ebp - 0x2d3c], ecx
jmp 0x426469
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [edx + 8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov dword [edx + 4], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x2d3c], eax
mov ecx, dword [ebp - 0x2d3c]
mov dword [ebp - 0x2d34], ecx
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x60]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 4]
call eax
add esp, 0xc
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x20
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
cmp dword [ebp - 0x18], 0
jge 0x4264dd
jmp 0x42a05c
cmp dword [ebp - 0x18], 0
jne 0x426550
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov dword [ebp + 0x10], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x1c]
and ecx, 0xffe00007
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x1ffff8
or ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x289c], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1c]
and edx, 0x20000
jne 0x42654e
jmp 0x426569
jmp 0x426564
cmp dword [ebp - 0x18], 0
jle 0x426564
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x64], eax
jmp 0x42528c
jmp case.0x4265a2.2
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4542c4]
mov dword [ebp - 0x2d40], edx
mov eax, dword [ebp - 0x2d40]
sub eax, 1
mov dword [ebp - 0x2d40], eax
cmp dword [ebp - 0x2d40], 0xf
ja case.0x4265a2.2
mov ecx, dword [ebp - 0x2d40]
movzx edx, byte [ecx + 0x42a470]
jmp dword [edx*4 + 0x42a45c]
cmp dword [ebp - 0x6c], 8
je 0x4265ca
cmp dword [ebp - 0x6c], 0
jne 0x4265be
mov eax, 1
test eax, eax
jne 0x4265ca
cmp dword [ebp - 0x6c], 0x40
jne 0x4265e4
cmp dword [ebp - 0x6c], 0x40
jne 0x4265e4
mov ecx, dword [ebp + 0x10]
add ecx, 8
mov dword [ebp + 0x10], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx - 8]
mov dword [ebp - 0x60], eax
mov ecx, dword [edx - 4]
mov dword [ebp - 0x5c], ecx
jmp 0x426626
cmp dword [ebp - 0x6c], 4
je 0x426600
cmp dword [ebp - 0x6c], 0
jne 0x4265f4
xor edx, edx
jne 0x426600
cmp dword [ebp - 0x6c], 0x40
jne 0x426614
cmp dword [ebp - 0x6c], 0x20
jne 0x426614
mov eax, dword [ebp + 0x10]
add eax, 4
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x60], edx
jmp 0x426626
mov eax, dword [ebp + 0x10]
add eax, 4
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x60], edx
jmp case.0x4265a2.2
cmp dword [ebp - 0x6c], 8
je 0x42664c
cmp dword [ebp - 0x6c], 0
jne 0x426640
mov eax, 1
test eax, eax
jne 0x42664c
cmp dword [ebp - 0x6c], 0x40
jne 0x426660
cmp dword [ebp - 0x6c], 0x40
jne 0x426660
mov ecx, dword [ebp + 0x10]
add ecx, 8
mov dword [ebp + 0x10], ecx
mov edx, dword [ebp + 0x10]
fld qword [edx - 8]
fstp qword [ebp - 0x60]
jmp 0x426672
mov eax, dword [ebp + 0x10]
add eax, 8
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
fld qword [ecx - 8]
fstp qword [ebp - 0x60]
jmp case.0x4265a2.2
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x60], ecx
jmp case.0x4265a2.2
cmp dword [ebp - 0x44], 0
jl 0x4266a2
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x60], ecx
jmp case.0x4265a2.2
mov edx, dword [ebp + 0x10]
add edx, 4
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
mov cl, byte [eax - 4]
mov byte [ebp - 0x60], cl
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x2d44], edx
mov eax, dword [ebp - 0x2d44]
sub eax, 0x21
mov dword [ebp - 0x2d44], eax
cmp dword [ebp - 0x2d44], 0x57
ja case.0x4266e2.1
mov ecx, dword [ebp - 0x2d44]
movzx edx, byte [ecx + 0x42a4b4]
jmp dword [edx*4 + 0x42a480]
mov eax, dword [ebp + 0xc]
sub eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, 1
mov dword [ebp - 0x4c], ecx
jmp 0x42528c
cmp dword [ebp - 0x34], 0
jne 0x426722
push 0
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [0x4540bc]
add esp, 0x10
mov dword [ebp - 0x34], eax
jmp 0x426727
jmp 0x42a05c
cmp dword [ebp - 0x60], 0
jne 0x426732
jmp 0x42a05c
mov edx, dword [ebp - 0x60]
cmp dword [edx + 0xc], 0
jne 0x426780
cmp dword [ebp - 0xc], 0
je 0x426780
mov eax, dword [ebp - 0xc]
cmp dword [eax + 8], 0
je 0x42676c
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 6
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 8]
call edx
add esp, 0x10
test eax, eax
jge 0x42676c
jmp 0x42528c
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x18], edx
jmp 0x42682b
push 0x24
call sub.MSVCR90.dll_malloc
add esp, 4
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jne 0x426798
jmp 0x42a14c
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0xc], 0
je 0x4267f8
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp + 0xc]
mov dword [ecx], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 0xc]
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x10]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x34], 0
jmp 0x426801
mov edx, dword [ebp - 0x54]
mov dword [edx], 0
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 8]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x20], eax
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0xc], edx
jmp 0x42528c
cmp dword [ebp - 0x44], 0
jl 0x42685a
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28a4], eax
cmp dword [ebp - 0x28a4], 0
je 0x426853
mov ecx, dword [ebp - 0x28a4]
cmp dword [ecx], 0
jne 0x426858
jmp 0x42528c
jmp 0x426882
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jne 0x42686d
mov dword [ebp - 0x30], str._null_
lea eax, [ebp - 0x2890]
mov dword [ebp - 0x28a4], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2890], ecx
mov edx, dword [ebp - 0x28a4]
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jl 0x4268af
cmp dword [ebp - 0x74], 0
jl 0x4268ad
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x74]
jle 0x4268ad
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
jmp 0x4268f1
cmp dword [ebp - 0x74], 0
jge 0x4268c6
mov ecx, dword [ebp - 0x30]
push ecx
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x18], eax
jmp 0x4268f1
mov dword [ebp - 0x18], 0
jmp 0x4268d8
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x74]
jge 0x4268f1
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x18]
movsx edx, byte [ecx]
test edx, edx
jne 0x4268ef
jmp 0x4268f1
jmp 0x4268cf
mov eax, dword [ebp - 0x289c]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x426aab
mov ecx, dword [ebp - 0x1c]
and ecx, 0x200
je 0x4269dd
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x426956
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x426951
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x30
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x426927
jmp 0x4269d8
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
push 0x30
mov eax, dword [ebp + 8]
push eax
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
je 0x4269d1
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
jmp 0x426aab
mov ecx, dword [ebp - 0x1c]
and ecx, 0x40
jne 0x426aab
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x426a29
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x426a24
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x20
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x4269fa
jmp 0x426aab
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
push 0x20
mov eax, dword [ebp + 8]
push eax
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
je 0x426aa4
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x18]
jl 0x426c27
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x2d48], edx
mov eax, dword [ebp - 0x2d48]
sub eax, 1
mov dword [ebp - 0x2d48], eax
cmp dword [ebp - 0x2d48], 6
ja case.default.0x426ae7
mov ecx, dword [ebp - 0x2d48]
jmp dword [ecx*4 + 0x42a50c]
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x2cb8]
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov edx, dword [ebp - 0x2cb8]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
jmp 0x426c25
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x426ca5
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004222c0
add esp, 0xc
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 4]
je 0x426ca5
jmp 0x42a14c
cmp dword [ebp - 0x2c], 0
jle 0x426d72
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x426cef
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x426cea
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x20
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x426cc0
jmp 0x426d72
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x2c]
push ecx
push 0x20
mov edx, dword [ebp + 8]
push edx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setle al
sub eax, 1
and eax, dword [ebp - 4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
je 0x426d6b
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x28a4]
add eax, 4
mov dword [ebp - 0x28a4], eax
mov ecx, dword [ebp - 0x28a4]
mov edx, dword [ecx]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jne 0x426d9c
jmp 0x426e46
cmp dword [ebp - 0x44], 0
jle 0x426e41
mov eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2cc0]
jae 0x426dd0
mov ecx, dword [ebp - 0x2cb8]
mov dl, byte [ebp - 0x44]
mov byte [ecx], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x426e41
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00420380
add esp, 8
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setge cl
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
cmp dword [ebp - 4], 0
jge 0x426e41
jmp 0x42a14c
jmp 0x42688d
jmp 0x42528c
cmp dword [ebp - 0x44], 0
jl 0x426e6e
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x426e67
mov ecx, dword [ebp - 0x30]
movsx edx, byte [ecx]
test edx, edx
jne 0x426e6c
jmp 0x42528c
jmp 0x426e8e
movsx eax, byte [ebp - 0x60]
mov dword [ebp - 0x78], eax
lea ecx, [ebp - 0x2888]
mov dword [ebp - 0x30], ecx
mov dl, byte [ebp - 0x78]
mov byte [ebp - 0x2888], dl
mov byte [ebp - 0x2887], 0
cmp dword [ebp - 0x74], 0
jg 0x426e9b
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0x30]
movsx ecx, byte [eax]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x289c]
sub edx, dword [ebp - 0x74]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jle 0x426f89
mov eax, dword [ebp - 0x1c]
and eax, 0x40
jne 0x426f89
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x426f06
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x426f01
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x20
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x426ed7
jmp 0x426f89
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x2c]
push ecx
push 0x20
mov edx, dword [ebp + 8]
push edx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setle al
sub eax, 1
and eax, dword [ebp - 4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
je 0x426f82
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x18]
jl 0x426fd1
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
test edx, edx
je 0x426fcc
mov ecx, dword [ebp - 0x2cb8]
mov dl, byte [ebp - 0x78]
mov byte [ecx], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x426fa0
jmp 0x427055
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setle dl
sub edx, 1
and edx, dword [ebp - 4]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 4]
je 0x42704e
jmp 0x42a14c
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x2c], 0
jle 0x427121
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x42709f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x42709a
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x20
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x427070
jmp 0x427121
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
push 0x20
mov eax, dword [ebp + 8]
push eax
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
je 0x42711a
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
movsx eax, byte [edx]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x427143
jmp 0x4271ee
cmp dword [ebp - 0x44], 0
jle 0x4271e9
mov ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2cc0]
jae 0x427177
mov edx, dword [ebp - 0x2cb8]
mov al, byte [ebp - 0x44]
mov byte [edx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
jmp 0x4271e9
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
sub eax, dword [edx]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
or ecx, 0x8000
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00420380
add esp, 8
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setge dl
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
cmp dword [ebp - 4], 0
jge 0x4271e9
jmp 0x42a14c
jmp 0x426ea4
jmp 0x42528c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
cmp dword [ebp - 0x6c], 8
je 0x427230
cmp dword [ebp - 0x6c], 0
jne 0x427224
mov edx, 1
test edx, edx
jne 0x427230
cmp dword [ebp - 0x6c], 0x40
jne 0x42723e
cmp dword [ebp - 0x6c], 0x40
jne 0x42723e
mov eax, dword [ebp - 0x64]
cdq
mov ecx, dword [ebp - 0x60]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4272ad
cmp dword [ebp - 0x6c], 4
je 0x42725a
cmp dword [ebp - 0x6c], 0
jne 0x42724e
xor edx, edx
jne 0x42725a
cmp dword [ebp - 0x6c], 0x40
jne 0x427264
cmp dword [ebp - 0x6c], 0x20
jne 0x427264
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
mov dword [eax], ecx
jmp 0x4272ad
mov edx, 1
test edx, edx
je 0x427295
cmp dword [ebp - 0x6c], 2
je 0x427289
cmp dword [ebp - 0x6c], 0
jne 0x42727d
xor eax, eax
jne 0x427289
cmp dword [ebp - 0x6c], 0x40
jne 0x427295
cmp dword [ebp - 0x6c], 0x10
jne 0x427295
mov ecx, dword [ebp - 0x60]
mov dx, word [ebp - 0x64]
mov word [ecx], dx
jmp 0x4272ad
cmp dword [ebp - 0x6c], 1
jne 0x4272a5
mov eax, dword [ebp - 0x60]
mov cl, byte [ebp - 0x64]
mov byte [eax], cl
jmp 0x4272ad
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov dword [edx], eax
jmp 0x42528c
mov dword [ebp - 0x78], 0x78
mov dword [ebp - 0x44], 0x10
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x2c], 4
mov ecx, dword [ebp - 0x1c]
and ecx, 0xfffffc7f
or ecx, 0x400
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x18], edx
jmp 0x428211
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x2c], 3
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffe7f
mov dword [ebp - 0x1c], eax
jmp 0x4273c7
mov dword [ebp - 0x2ccc], str.0123456789ABCDEF
mov dword [ebp - 0x44], 0x10
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x2c], 4
mov ecx, dword [ebp - 0x1c]
and ecx, 0xfffffe7f
mov dword [ebp - 0x1c], ecx
jmp 0x4273c7
mov dword [ebp - 0x78], 0x64
jmp case.0x4266e2.67
mov edx, dword [ebp - 0x1c]
and edx, 0xfffffe7f
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x44], 2
jl 0x427361
cmp dword [ebp - 0x44], 0x40
jle 0x427368
mov dword [ebp - 0x44], 0xa
mov eax, dword [ebp - 0x44]
sub eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x44]
and ecx, dword [ebp - 0x20]
jne 0x4273b8
cmp dword [ebp - 0x44], 8
jge 0x427390
xor edx, edx
cmp dword [ebp - 0x44], 4
setge dl
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x4273b6
cmp dword [ebp - 0x44], 0x20
jge 0x4273a7
xor eax, eax
cmp dword [ebp - 0x44], 0x10
setge al
add eax, 3
mov dword [ebp - 0x2c], eax
jmp 0x4273b6
xor ecx, ecx
cmp dword [ebp - 0x44], 0x40
setge cl
add ecx, 5
mov dword [ebp - 0x2c], ecx
jmp 0x4273c7
xor edx, edx
cmp dword [ebp - 0x44], 0xa
setne dl
sub edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x6c], 8
je 0x4273e8
cmp dword [ebp - 0x6c], 0
jne 0x4273dc
mov eax, 1
test eax, eax
jne 0x4273e8
cmp dword [ebp - 0x6c], 0x40
jne 0x4273fb
cmp dword [ebp - 0x6c], 0x40
jne 0x4273fb
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], edx
jmp 0x42743c
cmp dword [ebp - 0x6c], 4
je 0x42741f
cmp dword [ebp - 0x6c], 0
jne 0x42740b
xor eax, eax
jne 0x42741f
cmp dword [ebp - 0x6c], 0x40
jne 0x42813d
cmp dword [ebp - 0x6c], 0x20
jne 0x42813d
cmp dword [ebp - 0x78], 0x64
jne 0x427431
mov eax, dword [ebp - 0x60]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp 0x42743c
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
jne 0x42744f
cmp dword [ebp - 0x74], 0
jne 0x42744f
jmp 0x4296fc
cmp dword [ebp - 0x3c], 0
jg 0x4274e7
jl 0x427465
cmp dword [ebp - 0x40], 0
jae 0x4274e7
cmp dword [ebp - 0x78], 0x64
jne 0x4274e7
mov ecx, dword [ebp - 0x1c]
or ecx, 0x10000000
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x40], 0
jne 0x4274d4
cmp dword [ebp - 0x3c], 0x80000000
jne 0x4274d4
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
push 0x80000000
push 0
call fcn.00436510
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.00436310
xor ecx, ecx
sub ecx, eax
mov eax, 0x80000000
sbb eax, edx
mov edx, dword [ebp - 0x30]
mov eax, dword [str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ__]
mov cl, byte [eax + ecx]
mov byte [edx], cl
jmp 0x4274e7
mov edx, dword [ebp - 0x40]
neg edx
mov eax, dword [ebp - 0x3c]
adc eax, 0
neg eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x20], 0
jge 0x4280a8
cmp dword [ebp - 0x3c], 0
ja 0x427504
cmp dword [ebp - 0x40], 0x2710
jb 0x427a6e
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x2cd8], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x2cd4], edx
push 0
push 0x2710
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.00436510
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
push 0
push 0x2710
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp - 0x40]
push eax
call fcn.00436310
mov ecx, dword [ebp - 0x2cd8]
sub ecx, eax
mov eax, dword [ebp - 0x2cd4]
sbb eax, edx
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], eax
mov ecx, dword [ebp - 0x30]
sub ecx, 4
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x2cd4], 0
jg 0x427696
jl 0x427588
cmp dword [ebp - 0x2cd8], 0x1388
jae 0x427696
cmp dword [ebp - 0x2cd4], 0
jg 0x4275ea
jl 0x42759f
cmp dword [ebp - 0x2cd8], 0x7d0
jae 0x4275ea
cmp dword [ebp - 0x2cd4], 0
jg 0x4275be
jl 0x4275b6
cmp dword [ebp - 0x2cd8], 0x3e8
jae 0x4275be
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x4275e5
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x31
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x3e8
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x427691
cmp dword [ebp - 0x2cd4], 0
jg 0x42762a
jl 0x427601
cmp dword [ebp - 0x2cd8], 0xbb8
jae 0x42762a
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x32
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x7d0
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x427691
cmp dword [ebp - 0x2cd4], 0
jg 0x42766a
jl 0x427641
cmp dword [ebp - 0x2cd8], 0xfa0
jae 0x42766a
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x33
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0xbb8
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x427691
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x34
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0xfa0
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x4277c0
cmp dword [ebp - 0x2cd4], 0
jg 0x427719
jl 0x4276ad
cmp dword [ebp - 0x2cd8], 0x1b58
jae 0x427719
cmp dword [ebp - 0x2cd4], 0
jg 0x4276ed
jl 0x4276c4
cmp dword [ebp - 0x2cd8], 0x1770
jae 0x4276ed
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x35
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x1388
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x427714
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x36
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x1770
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x4277c0
cmp dword [ebp - 0x2cd4], 0
jg 0x427759
jl 0x427730
cmp dword [ebp - 0x2cd8], 0x1f40
jae 0x427759
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x37
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x1b58
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x4277c0
cmp dword [ebp - 0x2cd4], 0
jg 0x427799
jl 0x427770
cmp dword [ebp - 0x2cd8], 0x2328
jae 0x427799
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x38
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x1f40
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
jmp 0x4277c0
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x39
mov ecx, dword [ebp - 0x2cd8]
sub ecx, 0x2328
mov edx, dword [ebp - 0x2cd4]
sbb edx, 0
mov dword [ebp - 0x2cd8], ecx
mov dword [ebp - 0x2cd4], edx
cmp dword [ebp - 0x2cd4], 0
jg 0x4278ec
jl 0x4277df
cmp dword [ebp - 0x2cd8], 0x1f4
jae 0x4278ec
cmp dword [ebp - 0x2cd4], 0
jg 0x42783d
jl 0x4277f6
cmp dword [ebp - 0x2cd8], 0xc8
jae 0x42783d
cmp dword [ebp - 0x2cd4], 0
jg 0x427813
jl 0x42780a
cmp dword [ebp - 0x2cd8], 0x64
jae 0x427813
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x427838
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x31
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x64
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x4278e7
cmp dword [ebp - 0x2cd4], 0
jg 0x42787e
jl 0x427854
cmp dword [ebp - 0x2cd8], 0x12c
jae 0x42787e
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x32
mov edx, dword [ebp - 0x2cd8]
sub edx, 0xc8
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x4278e7
cmp dword [ebp - 0x2cd4], 0
jg 0x4278bf
jl 0x427895
cmp dword [ebp - 0x2cd8], 0x190
jae 0x4278bf
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x33
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x12c
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x4278e7
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x34
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x190
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x427a1b
cmp dword [ebp - 0x2cd4], 0
jg 0x427971
jl 0x427903
cmp dword [ebp - 0x2cd8], 0x2bc
jae 0x427971
cmp dword [ebp - 0x2cd4], 0
jg 0x427944
jl 0x42791a
cmp dword [ebp - 0x2cd8], 0x258
jae 0x427944
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x35
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x1f4
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x42796c
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x36
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x258
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x427a1b
cmp dword [ebp - 0x2cd4], 0
jg 0x4279b2
jl 0x427988
cmp dword [ebp - 0x2cd8], 0x320
jae 0x4279b2
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x37
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x2bc
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x427a1b
cmp dword [ebp - 0x2cd4], 0
jg 0x4279f3
jl 0x4279c9
cmp dword [ebp - 0x2cd8], 0x384
jae 0x4279f3
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x38
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x320
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
jmp 0x427a1b
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x39
mov edx, dword [ebp - 0x2cd8]
sub edx, 0x384
mov eax, dword [ebp - 0x2cd4]
sbb eax, 0
mov dword [ebp - 0x2cd8], edx
mov dword [ebp - 0x2cd4], eax
mov eax, dword [ebp - 0x2cd8]
mov edx, dword [ebp - 0x2cd4]
mov cl, 1
call fcn.00436370
mov dword [ebp - 0x2cd8], eax
mov dword [ebp - 0x2cd4], edx
mov ecx, dword [ebp - 0x2cd8]
add ecx, 0x453fe8
mov dword [ebp - 0x2ccc], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax]
mov byte [edx + 2], cl
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax + 1]
mov byte [edx + 3], cl
jmp 0x4274f1
cmp dword [ebp - 0x3c], 0
jg 0x427af2
jl 0x427a7c
cmp dword [ebp - 0x40], 0x64
jae 0x427af2
cmp dword [ebp - 0x3c], 0
jg 0x427aa6
jl 0x427a8a
cmp dword [ebp - 0x40], 0xa
jae 0x427aa6
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x40]
add eax, 0x30
mov ecx, dword [ebp - 0x3c]
adc ecx, 0
mov edx, dword [ebp - 0x30]
mov byte [edx], al
jmp 0x427aed
mov eax, dword [ebp - 0x30]
sub eax, 2
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov cl, 1
call fcn.00436370
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
add ecx, 0x453fe8
mov dword [ebp - 0x2ccc], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax + 1]
mov byte [edx + 1], cl
jmp 0x4280a3
cmp dword [ebp - 0x3c], 0
jg 0x427d01
jl 0x427b0b
cmp dword [ebp - 0x40], 0x3e8
jae 0x427d01
mov edx, dword [ebp - 0x30]
sub edx, 3
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x3c], 0
jg 0x427bea
jl 0x427b2d
cmp dword [ebp - 0x40], 0x1f4
jae 0x427bea
cmp dword [ebp - 0x3c], 0
jg 0x427b6e
jl 0x427b3e
cmp dword [ebp - 0x40], 0xc8
jae 0x427b6e
cmp dword [ebp - 0x3c], 0
jg 0x427b54
jl 0x427b4c
cmp dword [ebp - 0x40], 0x64
jae 0x427b54
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x427b6c
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x31
mov edx, dword [ebp - 0x40]
sub edx, 0x64
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427be5
cmp dword [ebp - 0x3c], 0
jg 0x427b9c
jl 0x427b7f
cmp dword [ebp - 0x40], 0x12c
jae 0x427b9c
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x32
mov edx, dword [ebp - 0x40]
sub edx, 0xc8
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427be5
cmp dword [ebp - 0x3c], 0
jg 0x427bca
jl 0x427bad
cmp dword [ebp - 0x40], 0x190
jae 0x427bca
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x40]
sub edx, 0x12c
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427be5
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x34
mov edx, dword [ebp - 0x40]
sub edx, 0x190
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427cbd
cmp dword [ebp - 0x3c], 0
jg 0x427c46
jl 0x427bfb
cmp dword [ebp - 0x40], 0x2bc
jae 0x427c46
cmp dword [ebp - 0x3c], 0
jg 0x427c29
jl 0x427c0c
cmp dword [ebp - 0x40], 0x258
jae 0x427c29
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x35
mov edx, dword [ebp - 0x40]
sub edx, 0x1f4
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427c44
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x40]
sub edx, 0x258
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427cbd
cmp dword [ebp - 0x3c], 0
jg 0x427c74
jl 0x427c57
cmp dword [ebp - 0x40], 0x320
jae 0x427c74
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x37
mov edx, dword [ebp - 0x40]
sub edx, 0x2bc
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427cbd
cmp dword [ebp - 0x3c], 0
jg 0x427ca2
jl 0x427c85
cmp dword [ebp - 0x40], 0x384
jae 0x427ca2
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x38
mov edx, dword [ebp - 0x40]
sub edx, 0x320
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427cbd
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x39
mov edx, dword [ebp - 0x40]
sub edx, 0x384
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov cl, 1
call fcn.00436370
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
add ecx, 0x453fe8
mov dword [ebp - 0x2ccc], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax]
mov byte [edx + 1], cl
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax + 1]
mov byte [edx + 2], cl
jmp 0x4280a3
mov edx, dword [ebp - 0x30]
sub edx, 4
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x3c], 0
jg 0x427de6
jl 0x427d23
cmp dword [ebp - 0x40], 0x1388
jae 0x427de6
cmp dword [ebp - 0x3c], 0
jg 0x427d6a
jl 0x427d34
cmp dword [ebp - 0x40], 0x7d0
jae 0x427d6a
cmp dword [ebp - 0x3c], 0
jg 0x427d4d
jl 0x427d45
cmp dword [ebp - 0x40], 0x3e8
jae 0x427d4d
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x427d68
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x31
mov edx, dword [ebp - 0x40]
sub edx, 0x3e8
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427de1
cmp dword [ebp - 0x3c], 0
jg 0x427d98
jl 0x427d7b
cmp dword [ebp - 0x40], 0xbb8
jae 0x427d98
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x32
mov edx, dword [ebp - 0x40]
sub edx, 0x7d0
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427de1
cmp dword [ebp - 0x3c], 0
jg 0x427dc6
jl 0x427da9
cmp dword [ebp - 0x40], 0xfa0
jae 0x427dc6
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x40]
sub edx, 0xbb8
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427de1
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x34
mov edx, dword [ebp - 0x40]
sub edx, 0xfa0
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427eb9
cmp dword [ebp - 0x3c], 0
jg 0x427e42
jl 0x427df7
cmp dword [ebp - 0x40], 0x1b58
jae 0x427e42
cmp dword [ebp - 0x3c], 0
jg 0x427e25
jl 0x427e08
cmp dword [ebp - 0x40], 0x1770
jae 0x427e25
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x35
mov edx, dword [ebp - 0x40]
sub edx, 0x1388
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427e40
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x40]
sub edx, 0x1770
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427eb9
cmp dword [ebp - 0x3c], 0
jg 0x427e70
jl 0x427e53
cmp dword [ebp - 0x40], 0x1f40
jae 0x427e70
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x37
mov edx, dword [ebp - 0x40]
sub edx, 0x1b58
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427eb9
cmp dword [ebp - 0x3c], 0
jg 0x427e9e
jl 0x427e81
cmp dword [ebp - 0x40], 0x2328
jae 0x427e9e
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x38
mov edx, dword [ebp - 0x40]
sub edx, 0x1f40
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x427eb9
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x39
mov edx, dword [ebp - 0x40]
sub edx, 0x2328
mov eax, dword [ebp - 0x3c]
sbb eax, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jg 0x427f91
jl 0x427ed2
cmp dword [ebp - 0x40], 0x1f4
jae 0x427f91
cmp dword [ebp - 0x3c], 0
jg 0x427f15
jl 0x427ee3
cmp dword [ebp - 0x40], 0xc8
jae 0x427f15
cmp dword [ebp - 0x3c], 0
jg 0x427efa
jl 0x427ef1
cmp dword [ebp - 0x40], 0x64
jae 0x427efa
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x30
jmp 0x427f13
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x31
mov eax, dword [ebp - 0x40]
sub eax, 0x64
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x427f8c
cmp dword [ebp - 0x3c], 0
jg 0x427f43
jl 0x427f26
cmp dword [ebp - 0x40], 0x12c
jae 0x427f43
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x32
mov eax, dword [ebp - 0x40]
sub eax, 0xc8
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x427f8c
cmp dword [ebp - 0x3c], 0
jg 0x427f71
jl 0x427f54
cmp dword [ebp - 0x40], 0x190
jae 0x427f71
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x33
mov eax, dword [ebp - 0x40]
sub eax, 0x12c
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x427f8c
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x34
mov eax, dword [ebp - 0x40]
sub eax, 0x190
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x428064
cmp dword [ebp - 0x3c], 0
jg 0x427fed
jl 0x427fa2
cmp dword [ebp - 0x40], 0x2bc
jae 0x427fed
cmp dword [ebp - 0x3c], 0
jg 0x427fd0
jl 0x427fb3
cmp dword [ebp - 0x40], 0x258
jae 0x427fd0
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x35
mov eax, dword [ebp - 0x40]
sub eax, 0x1f4
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x427feb
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x36
mov eax, dword [ebp - 0x40]
sub eax, 0x258
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x428064
cmp dword [ebp - 0x3c], 0
jg 0x42801b
jl 0x427ffe
cmp dword [ebp - 0x40], 0x320
jae 0x42801b
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x37
mov eax, dword [ebp - 0x40]
sub eax, 0x2bc
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x428064
cmp dword [ebp - 0x3c], 0
jg 0x428049
jl 0x42802c
cmp dword [ebp - 0x40], 0x384
jae 0x428049
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x38
mov eax, dword [ebp - 0x40]
sub eax, 0x320
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x428064
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x39
mov eax, dword [ebp - 0x40]
sub eax, 0x384
mov ecx, dword [ebp - 0x3c]
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov cl, 1
call fcn.00436370
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x40]
add edx, 0x453fe8
mov dword [ebp - 0x2ccc], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx]
mov byte [eax + 2], dl
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx + 1]
mov byte [eax + 3], dl
jmp 0x428138
cmp dword [ebp - 0x20], 0
jle 0x4280ed
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
cdq
and eax, dword [ebp - 0x40]
and edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2ccc]
mov al, byte [edx + eax]
mov byte [ecx], al
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
call fcn.00436350
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
or ecx, dword [ebp - 0x3c]
jne 0x4280ae
jmp 0x428138
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.00436490
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov al, byte [ecx + eax]
mov byte [edx], al
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x40]
push edx
call fcn.00436510
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
jne 0x4280ed
jmp 0x42898d
mov ecx, 1
test ecx, ecx
je 0x4281b4
cmp dword [ebp - 0x6c], 2
je 0x428162
cmp dword [ebp - 0x6c], 0
jne 0x428156
xor edx, edx
jne 0x428162
cmp dword [ebp - 0x6c], 0x40
jne 0x4281b4
cmp dword [ebp - 0x6c], 0x10
jne 0x4281b4
cmp dword [ebp - 0xc], 0
je 0x428197
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
je 0x428197
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1c]
and edx, 0x20000
je 0x428197
cmp dword [ebp - 0x78], 0x64
jne 0x42818e
movsx eax, word [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x428195
movzx ecx, word [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x4281ad
cmp dword [ebp - 0x78], 0x64
jne 0x4281a6
movsx edx, word [ebp - 0x60]
mov dword [ebp - 0x18], edx
jmp 0x4281ad
movzx eax, word [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x428211
cmp dword [ebp - 0x6c], 1
jne 0x42820b
cmp dword [ebp - 0xc], 0
je 0x4281ee
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x4281ee
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x4281ee
cmp dword [ebp - 0x78], 0x64
jne 0x4281e5
movsx ecx, byte [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x4281ec
movzx edx, byte [ebp - 0x60]
mov dword [ebp - 0x18], edx
jmp 0x428204
cmp dword [ebp - 0x78], 0x64
jne 0x4281fd
movsx eax, byte [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x428204
movzx ecx, byte [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x428211
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x428222
cmp dword [ebp - 0x74], 0
jne 0x428222
jmp 0x4296fc
cmp dword [ebp - 0x18], 0
jge 0x42827e
cmp dword [ebp - 0x78], 0x64
jne 0x42827e
mov eax, dword [ebp - 0x1c]
or eax, 0x10000000
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], 0x80000000
jne 0x428276
mov eax, 0x80000000
xor edx, edx
div dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x18]
imul edx, dword [ebp - 0x44]
mov eax, 0x80000000
sub eax, edx
mov ecx, dword [ebp - 0x30]
mov edx, dword [str.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ__]
mov al, byte [edx + eax]
mov byte [ecx], al
jmp 0x42827e
mov ecx, dword [ebp - 0x18]
neg ecx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x20], 0
jge 0x428927
cmp dword [ebp - 0x18], 0x2710
jb 0x428517
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, 0x2710
div ecx
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
imul edx, edx, 0x2710
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x30]
sub ecx, 4
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x2c], 0x1388
jge 0x42834b
cmp dword [ebp - 0x2c], 0x7d0
jge 0x4282fb
cmp dword [ebp - 0x2c], 0x3e8
jge 0x4282e7
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x4282f9
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x31
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x3e8
mov dword [ebp - 0x2c], ecx
jmp 0x428346
cmp dword [ebp - 0x2c], 0xbb8
jge 0x428317
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x32
mov eax, dword [ebp - 0x2c]
sub eax, 0x7d0
mov dword [ebp - 0x2c], eax
jmp 0x428346
cmp dword [ebp - 0x2c], 0xfa0
jge 0x428334
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x2c]
sub edx, 0xbb8
mov dword [ebp - 0x2c], edx
jmp 0x428346
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x34
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xfa0
mov dword [ebp - 0x2c], ecx
jmp 0x4283cf
cmp dword [ebp - 0x2c], 0x1b58
jge 0x428384
cmp dword [ebp - 0x2c], 0x1770
jge 0x428370
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x35
mov eax, dword [ebp - 0x2c]
sub eax, 0x1388
mov dword [ebp - 0x2c], eax
jmp 0x428382
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x2c]
sub edx, 0x1770
mov dword [ebp - 0x2c], edx
jmp 0x4283cf
cmp dword [ebp - 0x2c], 0x1f40
jge 0x4283a1
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x37
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1b58
mov dword [ebp - 0x2c], ecx
jmp 0x4283cf
cmp dword [ebp - 0x2c], 0x2328
jge 0x4283bd
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x38
mov eax, dword [ebp - 0x2c]
sub eax, 0x1f40
mov dword [ebp - 0x2c], eax
jmp 0x4283cf
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x39
mov edx, dword [ebp - 0x2c]
sub edx, 0x2328
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x1f4
jge 0x428455
cmp dword [ebp - 0x2c], 0xc8
jge 0x428402
cmp dword [ebp - 0x2c], 0x64
jge 0x4283f0
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x428400
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x31
mov edx, dword [ebp - 0x2c]
sub edx, 0x64
mov dword [ebp - 0x2c], edx
jmp 0x428450
cmp dword [ebp - 0x2c], 0x12c
jge 0x428420
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x32
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xc8
mov dword [ebp - 0x2c], ecx
jmp 0x428450
cmp dword [ebp - 0x2c], 0x190
jge 0x42843d
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x33
mov eax, dword [ebp - 0x2c]
sub eax, 0x12c
mov dword [ebp - 0x2c], eax
jmp 0x428450
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x34
mov edx, dword [ebp - 0x2c]
sub edx, 0x190
mov dword [ebp - 0x2c], edx
jmp 0x4284de
cmp dword [ebp - 0x2c], 0x2bc
jge 0x428490
cmp dword [ebp - 0x2c], 0x258
jge 0x42847c
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x35
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1f4
mov dword [ebp - 0x2c], ecx
jmp 0x42848e
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x36
mov eax, dword [ebp - 0x2c]
sub eax, 0x258
mov dword [ebp - 0x2c], eax
jmp 0x4284de
cmp dword [ebp - 0x2c], 0x320
jge 0x4284ae
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x37
mov edx, dword [ebp - 0x2c]
sub edx, 0x2bc
mov dword [ebp - 0x2c], edx
jmp 0x4284de
cmp dword [ebp - 0x2c], 0x384
jge 0x4284cc
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x38
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x320
mov dword [ebp - 0x2c], ecx
jmp 0x4284de
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x39
mov eax, dword [ebp - 0x2c]
sub eax, 0x384
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
shl ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
add edx, 0x453fe8
mov dword [ebp - 0x2ccc], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx]
mov byte [eax + 2], dl
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx + 1]
mov byte [eax + 3], dl
jmp 0x428288
cmp dword [ebp - 0x18], 0x64
jge 0x42857a
cmp dword [ebp - 0x18], 0xa
jge 0x428539
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x30
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
jmp 0x428575
mov eax, dword [ebp - 0x30]
sub eax, 2
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x18]
shl ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
add edx, 0x453fe8
mov dword [ebp - 0x2ccc], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx + 1]
mov byte [eax + 1], dl
jmp 0x428925
cmp dword [ebp - 0x18], 0x3e8
jge 0x4286ce
mov eax, dword [ebp - 0x30]
sub eax, 3
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x18], 0x1f4
jge 0x428611
cmp dword [ebp - 0x18], 0xc8
jge 0x4285c1
cmp dword [ebp - 0x18], 0x64
jge 0x4285b0
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x4285bf
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x31
mov eax, dword [ebp - 0x18]
sub eax, 0x64
mov dword [ebp - 0x18], eax
jmp 0x42860c
cmp dword [ebp - 0x18], 0x12c
jge 0x4285de
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x32
mov edx, dword [ebp - 0x18]
sub edx, 0xc8
mov dword [ebp - 0x18], edx
jmp 0x42860c
cmp dword [ebp - 0x18], 0x190
jge 0x4285fb
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x33
mov ecx, dword [ebp - 0x18]
sub ecx, 0x12c
mov dword [ebp - 0x18], ecx
jmp 0x42860c
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x34
mov eax, dword [ebp - 0x18]
sub eax, 0x190
mov dword [ebp - 0x18], eax
jmp 0x428696
cmp dword [ebp - 0x18], 0x2bc
jge 0x42864b
cmp dword [ebp - 0x18], 0x258
jge 0x428637
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x35
mov edx, dword [ebp - 0x18]
sub edx, 0x1f4
mov dword [ebp - 0x18], edx
jmp 0x428649
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x36
mov ecx, dword [ebp - 0x18]
sub ecx, 0x258
mov dword [ebp - 0x18], ecx
jmp 0x428696
cmp dword [ebp - 0x18], 0x320
jge 0x428667
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x37
mov eax, dword [ebp - 0x18]
sub eax, 0x2bc
mov dword [ebp - 0x18], eax
jmp 0x428696
cmp dword [ebp - 0x18], 0x384
jge 0x428684
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x38
mov edx, dword [ebp - 0x18]
sub edx, 0x320
mov dword [ebp - 0x18], edx
jmp 0x428696
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x39
mov ecx, dword [ebp - 0x18]
sub ecx, 0x384
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
shl edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
add eax, 0x453fe8
mov dword [ebp - 0x2ccc], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2ccc]
mov al, byte [edx]
mov byte [ecx + 1], al
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2ccc]
mov al, byte [edx + 1]
mov byte [ecx + 2], al
jmp 0x428925
mov ecx, dword [ebp - 0x30]
sub ecx, 4
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x18], 0x1388
jge 0x42875e
cmp dword [ebp - 0x18], 0x7d0
jge 0x42870e
cmp dword [ebp - 0x18], 0x3e8
jge 0x4286fa
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x42870c
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x31
mov ecx, dword [ebp - 0x18]
sub ecx, 0x3e8
mov dword [ebp - 0x18], ecx
jmp 0x428759
cmp dword [ebp - 0x18], 0xbb8
jge 0x42872a
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x32
mov eax, dword [ebp - 0x18]
sub eax, 0x7d0
mov dword [ebp - 0x18], eax
jmp 0x428759
cmp dword [ebp - 0x18], 0xfa0
jge 0x428747
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x18]
sub edx, 0xbb8
mov dword [ebp - 0x18], edx
jmp 0x428759
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x34
mov ecx, dword [ebp - 0x18]
sub ecx, 0xfa0
mov dword [ebp - 0x18], ecx
jmp 0x4287e2
cmp dword [ebp - 0x18], 0x1b58
jge 0x428797
cmp dword [ebp - 0x18], 0x1770
jge 0x428783
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x35
mov eax, dword [ebp - 0x18]
sub eax, 0x1388
mov dword [ebp - 0x18], eax
jmp 0x428795
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x18]
sub edx, 0x1770
mov dword [ebp - 0x18], edx
jmp 0x4287e2
cmp dword [ebp - 0x18], 0x1f40
jge 0x4287b4
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x37
mov ecx, dword [ebp - 0x18]
sub ecx, 0x1b58
mov dword [ebp - 0x18], ecx
jmp 0x4287e2
cmp dword [ebp - 0x18], 0x2328
jge 0x4287d0
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x38
mov eax, dword [ebp - 0x18]
sub eax, 0x1f40
mov dword [ebp - 0x18], eax
jmp 0x4287e2
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x39
mov edx, dword [ebp - 0x18]
sub edx, 0x2328
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x1f4
jge 0x428868
cmp dword [ebp - 0x18], 0xc8
jge 0x428815
cmp dword [ebp - 0x18], 0x64
jge 0x428803
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x428813
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x31
mov edx, dword [ebp - 0x18]
sub edx, 0x64
mov dword [ebp - 0x18], edx
jmp 0x428863
cmp dword [ebp - 0x18], 0x12c
jge 0x428833
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x32
mov ecx, dword [ebp - 0x18]
sub ecx, 0xc8
mov dword [ebp - 0x18], ecx
jmp 0x428863
cmp dword [ebp - 0x18], 0x190
jge 0x428850
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x33
mov eax, dword [ebp - 0x18]
sub eax, 0x12c
mov dword [ebp - 0x18], eax
jmp 0x428863
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x34
mov edx, dword [ebp - 0x18]
sub edx, 0x190
mov dword [ebp - 0x18], edx
jmp 0x4288f1
cmp dword [ebp - 0x18], 0x2bc
jge 0x4288a3
cmp dword [ebp - 0x18], 0x258
jge 0x42888f
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x35
mov ecx, dword [ebp - 0x18]
sub ecx, 0x1f4
mov dword [ebp - 0x18], ecx
jmp 0x4288a1
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x36
mov eax, dword [ebp - 0x18]
sub eax, 0x258
mov dword [ebp - 0x18], eax
jmp 0x4288f1
cmp dword [ebp - 0x18], 0x320
jge 0x4288c1
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x37
mov edx, dword [ebp - 0x18]
sub edx, 0x2bc
mov dword [ebp - 0x18], edx
jmp 0x4288f1
cmp dword [ebp - 0x18], 0x384
jge 0x4288df
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x38
mov ecx, dword [ebp - 0x18]
sub ecx, 0x320
mov dword [ebp - 0x18], ecx
jmp 0x4288f1
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x39
mov eax, dword [ebp - 0x18]
sub eax, 0x384
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
shl ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
add edx, 0x453fe8
mov dword [ebp - 0x2ccc], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx]
mov byte [eax + 2], dl
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2ccc]
mov dl, byte [ecx + 1]
mov byte [eax + 3], dl
jmp 0x42898d
cmp dword [ebp - 0x20], 0
jle 0x42895d
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x18]
and ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov cl, byte [eax + ecx]
mov byte [edx], cl
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
shr edx, cl
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x42892d
jmp 0x42898d
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2ccc]
mov dl, byte [eax + edx]
mov byte [ecx], dl
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x42895d
cmp dword [ebp - 0x20], 0
jge 0x428a81
mov eax, dword [ebp - 0x1c]
and eax, 0x800
je 0x428a81
mov ecx, dword [ebp - 0x28a0]
sub ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 3
jle 0x428a81
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jne 0x4289d6
mov dword [ebp - 0x2c], 3
lea edx, [ebp - 0x2488]
mov dword [ebp - 0x2cb4], edx
mov eax, dword [ebp - 0x2cb4]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2cb0], eax
mov ecx, dword [ebp - 0x2cb4]
cmp ecx, dword [ebp - 0x2cb0]
jae 0x428a26
mov edx, dword [ebp - 0x2cb4]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb4]
add edx, 1
mov dword [ebp - 0x2cb4], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x4289f1
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0x28a0]
jne 0x428a33
jmp 0x428a6c
mov edx, dword [ebp - 0x28a0]
sub edx, 3
cmp dword [ebp - 0x30], edx
ja 0x428a5b
mov eax, dword [ebp - 0x2cb4]
mov cl, byte [ebp - 0x48]
mov byte [eax], cl
mov edx, dword [ebp - 0x2cb4]
add edx, 1
mov dword [ebp - 0x2cb4], edx
mov eax, dword [ebp - 0x2cb4]
add eax, 3
mov dword [ebp - 0x2cb0], eax
jmp 0x4289f1
lea ecx, [ebp - 0x2488]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb4]
mov dword [ebp - 0x28a0], edx
cmp dword [ebp - 0x74], 0
jle 0x428acc
mov eax, dword [ebp - 0x28a0]
sub eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x74]
sub ecx, eax
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x2888]
sub edx, eax
sub edx, 0x40
cmp dword [ebp - 0x74], edx
jge 0x428acc
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x74]
sub edx, 1
mov dword [ebp - 0x74], edx
test ecx, ecx
jle 0x428acc
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x428aab
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x428c33
cmp dword [ebp - 0x78], 0x6f
jne 0x428b00
mov eax, dword [ebp - 0x30]
movsx ecx, byte [eax]
cmp ecx, 0x30
je 0x428afb
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x428c33
cmp dword [ebp - 0x289c], 0
jle 0x428b9e
mov ecx, dword [ebp - 0x1c]
and ecx, 0x200
je 0x428b9e
cmp dword [ebp - 0x78], 0x78
je 0x428b28
cmp dword [ebp - 0x78], 0x58
jne 0x428b31
mov dword [ebp - 0x2c], 0
jmp 0x428b51
cmp dword [ebp - 0x14], 2
jge 0x428b42
mov edx, dword [ebp - 0x289c]
mov dword [ebp - 0x2c], edx
jmp 0x428b51
xor eax, eax
cmp dword [ebp - 0x44], 0xa
setge al
add eax, 2
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x1c]
and ecx, 0x10000080
neg ecx
sbb ecx, ecx
neg ecx
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x28a0]
sub edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x289c]
sub eax, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
sub edx, 1
mov dword [ebp - 0x2c], edx
test ecx, ecx
jle 0x428b9e
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x428b7d
cmp dword [ebp - 0x78], 0x78
je 0x428baa
cmp dword [ebp - 0x78], 0x58
jne 0x428bcc
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x78]
mov byte [eax], cl
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x428c33
cmp dword [ebp - 0x14], 2
jl 0x428c33
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x23
cmp dword [ebp - 0x44], 0xa
jge 0x428bfd
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x44]
add ecx, 0x30
mov edx, dword [ebp - 0x30]
mov byte [edx], cl
jmp 0x428c33
mov eax, dword [ebp - 0x44]
shl eax, 1
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
mov cl, byte [eax + 0x453fe9]
mov byte [edx], cl
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
mov dl, byte [ecx + 0x453fe8]
mov byte [eax], dl
jmp 0x4296fc
cmp dword [ebp - 0x6c], 8
je 0x428c59
cmp dword [ebp - 0x6c], 0
jne 0x428c4d
mov eax, 1
test eax, eax
jne 0x428c59
cmp dword [ebp - 0x6c], 0x40
jne 0x428c64
cmp dword [ebp - 0x6c], 0x40
jne 0x428c64
fld qword [ebp - 0x60]
fstp qword [ebp - 0x2cc8]
jmp 0x428cb5
cmp dword [ebp - 0xc], 0
je 0x428ca1
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x428ca1
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x428ca1
cmp dword [ebp - 0x6c], 8
je 0x428ca1
cmp dword [ebp - 0x6c], 0
jne 0x428c95
mov ecx, 1
test ecx, ecx
jne 0x428ca1
cmp dword [ebp - 0x6c], 0x40
jne 0x428cac
cmp dword [ebp - 0x6c], 0x40
jne 0x428cac
fld qword [ebp - 0x60]
fstp qword [ebp - 0x2898]
jmp 0x428cb5
fld dword [ebp - 0x60]
fstp qword [ebp - 0x2898]
cmp dword [ebp - 0x78], 0x65
je 0x428cc5
cmp dword [ebp - 0x78], 0x45
jne 0x428dad
cmp dword [ebp - 0x74], 0
jge 0x428cd7
mov dword [ebp - 0x2d4c], 6
jmp 0x428ce0
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x2d4c], edx
mov eax, dword [ebp - 0x2d4c]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x74]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x6c], 8
je 0x428d13
cmp dword [ebp - 0x6c], 0
jne 0x428d07
mov edx, 1
test edx, edx
jne 0x428d13
cmp dword [ebp - 0x6c], 0x40
jne 0x428d5c
cmp dword [ebp - 0x6c], 0x40
jne 0x428d5c
cmp dword [ebp - 0x2c], 0x400
jge 0x428d27
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2d50], eax
jmp 0x428d31
mov dword [ebp - 0x2d50], 0x400
push 0x8010000
lea ecx, [ebp - 0x70]
push ecx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x2d50]
push eax
lea ecx, [ebp - 0x2cc8]
push ecx
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x428da3
cmp dword [ebp - 0x2c], 0x400
jge 0x428d70
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2d54], edx
jmp 0x428d7a
mov dword [ebp - 0x2d54], 0x400
push 0x8000000
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x2d54]
push edx
lea eax, [ebp - 0x2898]
push eax
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x42905a
cmp dword [ebp - 0x78], 0x66
je 0x428dbd
cmp dword [ebp - 0x78], 0x46
jne 0x428e94
cmp dword [ebp - 0x74], 0
jge 0x428dcf
mov dword [ebp - 0x2d58], 6
jmp 0x428dd8
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2d58], ecx
mov edx, dword [ebp - 0x2d58]
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x6c], 8
je 0x428e02
cmp dword [ebp - 0x6c], 0
jne 0x428df6
mov eax, 1
test eax, eax
jne 0x428e02
cmp dword [ebp - 0x6c], 0x40
jne 0x428e4b
cmp dword [ebp - 0x6c], 0x40
jne 0x428e4b
cmp dword [ebp - 0x74], 0x400
jge 0x428e16
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2d5c], ecx
jmp 0x428e20
mov dword [ebp - 0x2d5c], 0x400
push 0x10000
lea edx, [ebp - 0x70]
push edx
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x2d5c]
push ecx
lea edx, [ebp - 0x2cc8]
push edx
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x428e8f
cmp dword [ebp - 0x74], 0x400
jge 0x428e5f
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2d60], eax
jmp 0x428e69
mov dword [ebp - 0x2d60], 0x400
push 0
lea ecx, [ebp - 0x70]
push ecx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x2d60]
push eax
lea ecx, [ebp - 0x2898]
push ecx
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x4293a2
cmp dword [ebp - 0x74], 0
jge 0x428ea6
mov dword [ebp - 0x2d64], 6
jmp 0x428ecd
cmp dword [ebp - 0x74], 0
jne 0x428eb8
mov dword [ebp - 0x2d68], 1
jmp 0x428ec1
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x2d68], edx
mov eax, dword [ebp - 0x2d68]
mov dword [ebp - 0x2d64], eax
mov ecx, dword [ebp - 0x2d64]
mov dword [ebp - 0x74], ecx
cmp dword [ebp - 0x6c], 8
je 0x428ef7
cmp dword [ebp - 0x6c], 0
jne 0x428eeb
mov edx, 1
test edx, edx
jne 0x428ef7
cmp dword [ebp - 0x6c], 0x40
jne 0x428f6b
cmp dword [ebp - 0x6c], 0x40
jne 0x428f6b
cmp dword [ebp - 0x74], 0x400
jge 0x428f0b
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2d6c], eax
jmp 0x428f15
mov dword [ebp - 0x2d6c], 0x400
push 0x8010000
lea ecx, [ebp - 0x70]
push ecx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x2d6c]
push eax
lea ecx, [ebp - 0x2cc8]
push ecx
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
fldz
fcomp qword [ebp - 0x2cc8]
fnstsw ax
test ah, 0x44
jp 0x428f56
mov dword [ebp - 0x10], 1
jmp 0x428f69
mov edx, dword [ebp - 0x2cb4]
movsx eax, byte [edx]
cmp eax, 0x49
jne 0x428f69
jmp 0x4293b9
jmp 0x428fdd
cmp dword [ebp - 0x74], 0x400
jge 0x428f7f
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2d70], ecx
jmp 0x428f89
mov dword [ebp - 0x2d70], 0x400
push 0x8000000
lea edx, [ebp - 0x70]
push edx
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x2d70]
push ecx
lea edx, [ebp - 0x2898]
push edx
call fcn.0042e900
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jp 0x428fca
mov dword [ebp - 0x10], 1
jmp 0x428fdd
mov eax, dword [ebp - 0x2cb4]
movsx ecx, byte [eax]
cmp ecx, 0x49
jne 0x428fdd
jmp 0x4293b9
mov edx, dword [ebp - 0x1c]
and edx, 0x400
jne 0x42902b
mov eax, dword [0x453d8c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x74]
jle 0x428ffe
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 1
jl 0x429020
mov ecx, dword [ebp - 0x2cb4]
add ecx, dword [ebp - 0x2c]
movsx edx, byte [ecx]
cmp edx, 0x30
jne 0x429020
jmp 0x428ffe
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x429031
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x10], 0xfffffffd
jl 0x42903f
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x74]
jle 0x42904c
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x74], eax
jmp 0x42905a
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 0x74], ecx
jmp 0x4293a2
mov edx, dword [ebp - 0x2cb4]
movsx eax, byte [edx]
push eax
call dword [sym.imp.MSVCR90.dll_isalpha]
add esp, 4
test eax, eax
je 0x429076
jmp 0x4293b9
lea ecx, [ebp - 0x2887]
mov dword [ebp - 0x28a0], ecx
mov edx, dword [ebp - 0x28a0]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4290b8
mov edx, dword [ebp - 0x2cb4]
movsx eax, byte [edx]
mov dword [ebp - 0x2d74], eax
mov ecx, dword [ebp - 0x2cb4]
add ecx, 1
mov dword [ebp - 0x2cb4], ecx
jmp 0x4290c2
mov dword [ebp - 0x2d74], 0x30
mov edx, dword [ebp - 0x28a0]
mov al, byte [ebp - 0x2d74]
mov byte [edx], al
mov ecx, dword [ebp - 0x28a0]
add ecx, 1
mov dword [ebp - 0x28a0], ecx
cmp dword [ebp - 8], 0
jne 0x42915b
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2cdc], eax
cmp dword [ebp - 0x2cdc], 0
je 0x42915b
mov edx, dword [ebp - 0x2cdc]
cmp dword [edx], 0
je 0x429129
mov eax, dword [ebp - 0x2cdc]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x429129
mov eax, dword [ebp - 0x2cdc]
mov ecx, dword [eax]
movsx edx, byte [ecx]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x48]
test eax, eax
je 0x42915b
mov ecx, dword [ebp - 0x2cdc]
cmp dword [ecx + 4], 0
je 0x42915b
mov edx, dword [ebp - 0x2cdc]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x42915b
mov edx, dword [ebp - 0x2cdc]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x74], 0
jg 0x42916c
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x429186
mov eax, dword [ebp - 0x28a0]
mov cl, byte [ebp - 8]
mov byte [eax], cl
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
mov eax, dword [ebp - 0x28a0]
mov dword [ebp - 0x2ccc], eax
mov ecx, dword [ebp - 0x2cb4]
add ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2cb0], ecx
mov edx, dword [ebp - 0x28a0]
mov eax, dword [ebp - 0x2cb4]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x28a0]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x28a0]
add ecx, 1
mov dword [ebp - 0x28a0], ecx
mov edx, dword [ebp - 0x2cb4]
add edx, 1
mov dword [ebp - 0x2cb4], edx
test eax, eax
je 0x4291ec
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
ja 0x4291ec
jmp 0x4291a1
mov ecx, dword [ebp - 0x28a0]
sub ecx, 1
mov dword [ebp - 0x28a0], ecx
mov edx, dword [ebp - 0x28a0]
sub edx, dword [ebp - 0x2ccc]
mov eax, dword [ebp - 0x74]
sub eax, edx
mov dword [ebp - 0x74], eax
lea ecx, [ebp - 0x85]
mov dword [ebp - 0x2cb0], ecx
mov edx, dword [ebp - 0x2cb0]
mov dword [ebp - 0x2cb4], edx
cmp dword [ebp - 0x6c], 8
je 0x429248
cmp dword [ebp - 0x6c], 0
jne 0x42923c
mov eax, 1
test eax, eax
jne 0x429248
cmp dword [ebp - 0x6c], 0x40
jne 0x429275
cmp dword [ebp - 0x6c], 0x40
jne 0x429275
fldz
fcomp qword [ebp - 0x2cc8]
fnstsw ax
test ah, 0x44
jnp 0x429261
fld1
fstp qword [ebp - 0x2d7c]
jmp 0x429269
fldz
fstp qword [ebp - 0x2d7c]
fld qword [ebp - 0x2d7c]
fstp qword [ebp - 0x2898]
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jnp 0x4292da
mov ecx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jns 0x429297
mov edx, dword [ebp - 0x2c]
neg edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 9
jle 0x4292d8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2cb4]
sub edx, 1
mov dword [ebp - 0x2cb4], edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0xa
mov ecx, dword [ebp - 0x18]
sub ecx, eax
add ecx, 0x30
mov edx, dword [ebp - 0x2cb4]
mov byte [edx], cl
jmp 0x429297
jmp 0x4292e1
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x2cb4]
sub eax, 1
mov dword [ebp - 0x2cb4], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 0x30
mov edx, dword [ebp - 0x2cb4]
mov byte [edx], cl
mov eax, dword [ebp - 0x2cb0]
sub eax, dword [ebp - 0x2cb4]
cmp eax, 1
jg 0x429327
mov ecx, dword [ebp - 0x2cb4]
sub ecx, 1
mov dword [ebp - 0x2cb4], ecx
mov edx, dword [ebp - 0x2cb4]
mov byte [edx], 0x30
cmp dword [ebp - 0x10], 0
jg 0x429348
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jnp 0x429348
mov dword [ebp - 0x2d80], 0x2d
jmp 0x429352
mov dword [ebp - 0x2d80], 0x2b
mov eax, dword [ebp - 0x2cb4]
sub eax, 1
mov dword [ebp - 0x2cb4], eax
mov ecx, dword [ebp - 0x2cb4]
mov dl, byte [ebp - 0x2d80]
mov byte [ecx], dl
mov eax, dword [ebp - 0x2cb4]
sub eax, 1
mov dword [ebp - 0x2cb4], eax
mov ecx, dword [ebp - 0x78]
push ecx
call dword [sym.imp.MSVCR90.dll_isupper]
add esp, 4
neg eax
sbb eax, eax
and eax, 0xffffffe0
add eax, 0x65
mov edx, dword [ebp - 0x2cb4]
mov byte [edx], al
jmp 0x4296e2
mov eax, dword [ebp - 0x2cb4]
movsx ecx, byte [eax]
push ecx
call dword [sym.imp.MSVCR90.dll_isalpha]
add esp, 4
test eax, eax
je 0x4293e9
mov edx, dword [ebp - 0x2cb4]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
add eax, dword [0x453d8c]
mov dword [ebp - 0x28a0], eax
mov ecx, dword [ebp - 0x2cb0]
mov dword [ebp - 0x2cb4], ecx
mov dword [ebp - 0x74], 0
jmp 0x4296e2
cmp dword [ebp - 8], 0
jne 0x429465
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2ce0], eax
cmp dword [ebp - 0x2ce0], 0
je 0x429465
mov edx, dword [ebp - 0x2ce0]
cmp dword [edx], 0
je 0x429433
mov eax, dword [ebp - 0x2ce0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x429433
mov eax, dword [ebp - 0x2ce0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x48]
test eax, eax
je 0x429465
mov ecx, dword [ebp - 0x2ce0]
cmp dword [ecx + 4], 0
je 0x429465
mov edx, dword [ebp - 0x2ce0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x429465
mov edx, dword [ebp - 0x2ce0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
mov dword [ebp - 0x48], ecx
lea edx, [ebp - 0x2887]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28a0], eax
mov ecx, dword [ebp - 0x2cb4]
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x2cb0], ecx
cmp dword [ebp - 0x10], 3
jle 0x429547
mov edx, dword [ebp - 0x1c]
and edx, 0x800
je 0x429547
mov eax, dword [ebp - 0x10]
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jne 0x4294ba
mov dword [ebp - 0x2c], 3
mov edx, dword [ebp - 0x2cb4]
cmp edx, dword [ebp - 0x2cb0]
jae 0x429545
mov eax, dword [ebp - 0x28a0]
mov ecx, dword [ebp - 0x2cb4]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x28a0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
mov eax, dword [ebp - 0x2cb4]
add eax, 1
mov dword [ebp - 0x2cb4], eax
test ecx, ecx
je 0x429545
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jne 0x429540
mov edx, dword [ebp - 0x2cb0]
sub edx, 3
cmp dword [ebp - 0x2cb4], edx
ja 0x429540
mov eax, dword [ebp - 0x28a0]
mov cl, byte [ebp - 0x48]
mov byte [eax], cl
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
mov dword [ebp - 0x2c], 3
jmp 0x4294ba
jmp 0x429592
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
jae 0x429592
mov ecx, dword [ebp - 0x28a0]
mov edx, dword [ebp - 0x2cb4]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x28a0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x28a0]
add eax, 1
mov dword [ebp - 0x28a0], eax
mov ecx, dword [ebp - 0x2cb4]
add ecx, 1
mov dword [ebp - 0x2cb4], ecx
test edx, edx
je 0x429592
jmp 0x429547
mov edx, dword [ebp - 0x28a0]
cmp edx, dword [ebp - 0x30]
jne 0x4295b5
mov eax, dword [ebp - 0x28a0]
mov byte [eax], 0x30
mov ecx, dword [ebp - 0x28a0]
add ecx, 1
mov dword [ebp - 0x28a0], ecx
cmp dword [ebp - 0x74], 0
jg 0x4295c6
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x4295e0
mov eax, dword [ebp - 0x28a0]
mov cl, byte [ebp - 8]
mov byte [eax], cl
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
mov eax, dword [ebp - 0x10]
neg eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x42964d
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x74]
jge 0x429601
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2d84], edx
jmp 0x42960a
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2d84], eax
mov ecx, dword [ebp - 0x28a0]
add ecx, dword [ebp - 0x2d84]
mov dword [ebp - 0x2ccc], ecx
mov edx, dword [ebp - 0x74]
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x28a0]
cmp eax, dword [ebp - 0x2ccc]
jae 0x42964d
mov ecx, dword [ebp - 0x28a0]
mov byte [ecx], 0x30
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
jmp 0x429625
mov eax, dword [ebp - 0x28a0]
mov dword [ebp - 0x2ccc], eax
mov ecx, dword [ebp - 0x2cb4]
add ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2cb0], ecx
mov edx, dword [ebp - 0x28a0]
mov eax, dword [ebp - 0x2cb4]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x28a0]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x28a0]
add ecx, 1
mov dword [ebp - 0x28a0], ecx
mov edx, dword [ebp - 0x2cb4]
add edx, 1
mov dword [ebp - 0x2cb4], edx
test eax, eax
je 0x4296b3
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
ja 0x4296b3
jmp 0x429668
mov ecx, dword [ebp - 0x28a0]
sub ecx, 1
mov dword [ebp - 0x28a0], ecx
mov edx, dword [ebp - 0x28a0]
sub edx, dword [ebp - 0x2ccc]
mov eax, dword [ebp - 0x74]
sub eax, edx
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x2cb0]
mov dword [ebp - 0x2cb4], ecx
mov edx, dword [ebp - 0x1c]
or edx, 4
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x70], 0
je 0x4296fc
mov eax, dword [ebp - 0x1c]
or eax, 0x10000000
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x429710
cmp dword [ebp - 0x289c], 0
jg 0x429710
jmp 0x429a7c
mov ecx, dword [ebp - 0x1c]
and ecx, 0x10000180
je 0x429753
mov edx, dword [ebp - 0x1c]
and edx, 0x10000000
je 0x429732
mov dword [ebp - 0x2d88], 0x2d
jmp 0x42974a
mov eax, dword [ebp - 0x1c]
and eax, 0x80
neg eax
sbb eax, eax
and eax, 0xb
add eax, 0x20
mov dword [ebp - 0x2d88], eax
mov ecx, dword [ebp - 0x2d88]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x28a0]
sub edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2cb0]
sub eax, dword [ebp - 0x2cb4]
add edx, eax
xor ecx, ecx
cmp dword [ebp - 0x74], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 0x74]
add edx, ecx
mov eax, dword [ebp - 0x1c]
and eax, 0x10000180
neg eax
sbb eax, eax
neg eax
add edx, eax
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x289c]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jg 0x4297a9
mov dword [ebp - 0x18], 0
jmp 0x4297ed
mov edx, dword [ebp - 0x1c]
and edx, 0x200
jne 0x4297ed
mov eax, dword [ebp - 0x1c]
and eax, 0x40
je 0x4297c6
mov ecx, dword [ebp - 0x18]
neg ecx
mov dword [ebp - 0x18], ecx
jmp 0x4297ed
mov edx, dword [ebp - 0x1c]
and edx, 0x10000180
je 0x4297ed
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov dl, byte [ebp - 0x78]
mov byte [ecx], dl
mov eax, dword [ebp - 0x1c]
and eax, 0xeffffe7f
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
and ecx, 0x10000180
je 0x4298aa
mov edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2cc0]
jae 0x429826
mov eax, dword [ebp - 0x2cb8]
mov cl, byte [ebp - 0x78]
mov byte [eax], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x429898
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x78]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00420380
add esp, 8
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setge al
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
cmp dword [ebp - 4], 0
jge 0x429898
jmp 0x42a14c
cmp dword [ebp - 0x78], 0x20
je 0x4298aa
mov edx, dword [ebp - 0x1c]
or edx, 0x200
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x429997
mov ecx, dword [ebp - 0x1c]
and ecx, 0x200
neg ecx
sbb ecx, ecx
and ecx, 0x10
add ecx, 0x20
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x429912
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x42990d
mov edx, dword [ebp - 0x2cb8]
mov al, byte [ebp - 0x18]
mov byte [edx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
jmp 0x4298e1
jmp 0x429997
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
sub eax, dword [edx]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
or ecx, 0x8000
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setle al
sub eax, 1
and eax, dword [ebp - 4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
je 0x429990
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x429a7c
mov ecx, dword [ebp - 0x1c]
and ecx, 4
jne 0x429a7c
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x4299f3
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x4299ee
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x30
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x4299c4
jmp 0x429a75
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
push 0x30
mov eax, dword [ebp + 8]
push eax
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setle cl
sub ecx, 1
and ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2cc0], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
je 0x429a6e
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x74], 0
mov ecx, dword [ebp - 0x28a0]
sub ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0
jle 0x429c8b
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x429c0e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2d8c], eax
mov ecx, dword [ebp - 0x2d8c]
sub ecx, 1
mov dword [ebp - 0x2d8c], ecx
cmp dword [ebp - 0x2d8c], 6
ja case.default.0x429ace
mov edx, dword [ebp - 0x2d8c]
jmp dword [edx*4 + 0x42a528]
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x2cb8]
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x2cb8]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
jmp 0x429c0c
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x429c8b
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004222c0
add esp, 0xc
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setle dl
sub edx, 1
and edx, dword [ebp - 4]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 4]
je 0x429c8b
jmp 0x42a14c
mov edx, dword [ebp - 0x1c]
and edx, 0x44
je 0x42a057
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x429d6a
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x429ce7
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x429ce2
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x30
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x429cb8
jmp 0x429d6a
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
sub ecx, dword [eax]
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
or edx, 0x8000
mov eax, dword [ebp + 8]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x2c]
push ecx
push 0x30
mov edx, dword [ebp + 8]
push edx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setle al
sub eax, 1
and eax, dword [ebp - 4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x2cc0], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 4]
je 0x429d63
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x2cb4]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb0]
sub ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0
jle 0x429f82
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x429f05
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2d90], eax
mov ecx, dword [ebp - 0x2d90]
sub ecx, 1
mov dword [ebp - 0x2d90], ecx
cmp dword [ebp - 0x2d90], 6
ja case.default.0x429dc5
mov edx, dword [ebp - 0x2d90]
jmp dword [edx*4 + 0x42a544]
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x2cb8]
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x2cb8]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
jmp 0x429f03
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2cb8]
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x2cb8]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2cb8]
mov eax, dword [ebp - 0x30]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x429f82
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004222c0
add esp, 0xc
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setle dl
sub edx, 1
and edx, dword [ebp - 4]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 4]
je 0x429f82
jmp 0x42a14c
mov edx, dword [ebp - 0x18]
neg edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jle 0x42a057
mov eax, dword [ebp - 0x2cc0]
sub eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2c]
jl 0x429fd4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
sub edx, 1
mov dword [ebp - 0x2c], edx
test ecx, ecx
je 0x429fcf
mov eax, dword [ebp - 0x2cb8]
mov byte [eax], 0x20
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
jmp 0x429fa5
jmp 0x42a057
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2cb8]
sub eax, dword [edx]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
or ecx, 0x8000
mov edx, dword [ebp + 8]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x2c]
push eax
push 0x20
mov ecx, dword [ebp + 8]
push ecx
call fcn.0042fca0
add esp, 0xc
mov dword [ebp - 4], eax
xor edx, edx
cmp dword [ebp - 4], 0
setle dl
sub edx, 1
and edx, dword [ebp - 4]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x2cb8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2cc0], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 4]
je 0x42a050
jmp 0x42a14c
mov dword [ebp - 0x2c], 0
jmp 0x42528c
cmp dword [ebp - 0x34], 0
je 0x42a075
mov edx, dword [ebp - 0x34]
push edx
call sub.MSVCR90.dll_free
add esp, 4
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x42a14c
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + 0x1c], 0
je 0x42a0d9
cmp dword [ebp + 0xc], 0
je 0x42a09e
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
test eax, eax
jne 0x42a0b7
mov ecx, dword [ebp - 0xc]
push ecx
push 0
push 0xb
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0x1c]
call ecx
add esp, 0x10
jmp 0x42a0d9
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 0xc]
push eax
push 6
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x1c]
call eax
add esp, 0x10
test eax, eax
jge 0x42a0d9
jmp 0x42528c
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
mov dword [ebp + 0xc], ecx
cmp dword [ebp + 0xc], 0
je 0x42a11d
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 4]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x54]
push edx
call sub.MSVCR90.dll_free
add esp, 4
cmp dword [ebp + 0xc], 0
je 0x42a147
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x42a147
jmp 0x42528c
jmp 0x42a075
cmp dword [ebp - 0x34], 0
je 0x42a15e
mov edx, dword [ebp - 0x34]
push edx
call sub.MSVCR90.dll_free
add esp, 4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x42a1a4
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + 0x1c], 0
je 0x42a18d
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x18]
push eax
push 0
push 0xb
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x1c]
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x54]
push eax
call sub.MSVCR90.dll_free
add esp, 4
jmp 0x42a15e
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2cb8]
sub edx, dword [ecx]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2cb8]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx]
sub ecx, dword [eax + 0x18]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x2cb8], eax
mov ecx, dword [ebp - 0x2cb8]
lea edx, [ebp - 0x2ca8]
cmp ecx, edx
jne 0x42a212
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0
mov eax, dword [ebp + 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x40
je 0x42a23a
mov ecx, dword [ebp - 0x1c]
and ecx, 0x800
je 0x42a258
cmp dword [ebp - 0x2c], 0
jle 0x42a282
mov edx, dword [ebp - 0x2cb8]
lea eax, [ebp - 0x2ca8]
cmp edx, eax
je 0x42a258
mov ecx, dword [ebp - 0x1c]
and ecx, 0x20
je 0x42a282
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
or eax, 0x8000
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x2cb8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004222c0
add esp, 0xc
jmp 0x42a28f
mov edx, dword [ebp + 8]
mov eax, dword [edx]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0xffffffc7
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x3c], 1
jne 0x42a2e7
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x14]
and ecx, 0
je 0x42a2c1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x2d94], eax
jmp 0x42a2cd
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x2d94], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2d94]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x2d94]
mov dword [ebp - 0x2d98], edx
jmp 0x42a360
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 2
jne 0x42a330
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 0x20
je 0x42a30a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2d9c], ecx
jmp 0x42a316
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2d9c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2d9c]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x2d9c]
mov dword [ebp - 0x2da0], eax
jmp 0x42a354
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
mov dword [ecx + 4], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x2da0], edx
mov eax, dword [ebp - 0x2da0]
mov dword [ebp - 0x2d98], eax
mov eax, dword [ebp - 0x64]
pop esi
mov ecx, dword [ebp - 0x7c]
xor ecx, ebp
call fcn.0043618e
mov esp, ebp
pop ebp
ret