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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2da0
call fcn.00442d00
mov eax, dword [0x4a8b70]
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 [0x4a86c8], 0
je 0x430bf2
mov dword [ebp - 0x2ce4], 1
jmp 0x430c08
call dword [0x4a86c4]
mov dword [0x4a86c8], eax
mov eax, dword [0x4a86c8]
mov dword [ebp - 0x2ce4], eax
cmp dword [ebp + 8], 0
jne 0x430c16
or eax, 0xffffffff
jmp 0x435dd3
cmp dword [ebp + 0xc], 0
jne 0x430c24
or eax, 0xffffffff
jmp 0x435dd3
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x3c], 2
je 0x430c49
push 0
push 2
mov edx, dword [ebp + 8]
push edx
call fcn.0042ef10
add esp, 0xc
test eax, eax
jge 0x430c49
or eax, 0xffffffff
jmp 0x435dd3
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 0x430cac
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 4
jne 0x430cac
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 0x435acc
cmp dword [ebp - 0x2c], 0x25
je 0x430f52
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 0x430d48
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
cmp eax, 0x25
je 0x430d48
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x430d28
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 0x430ecd
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.0x430d8d
mov eax, dword [ebp - 0x2ce8]
jmp dword [eax*4 + 0x435de4]
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 0x430ecb
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 0x430f4b
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.0042c0b0
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 0x430f4b
jmp 0x435bbc
jmp 0x430cfc
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.0x43101e.1
mov ecx, dword [ebp - 0x2cf0]
movzx edx, byte [ecx + 0x435e50]
jmp dword [edx*4 + 0x435e00]
mov eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2cc0]
jae 0x43104d
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x25
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x4310bd
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.00429b40
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 0x4310bd
jmp 0x435bbc
jmp 0x435acc
mov ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2cc0]
jae 0x4310ea
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x25
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x431159
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.00429b40
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 0x431159
jmp 0x435bbc
jmp 0x430cfc
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 0x4311ac
cmp dword [ebp - 0x2cf8], 0x28
je 0x4311c8
cmp dword [ebp - 0x2cf8], 0x29
je 0x4311d3
jmp 0x4313cf
mov ecx, dword [ebp - 0x68]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x2cac], 0
jmp 0x430fdd
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
jmp 0x43116b
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
je 0x4311e0
jmp 0x43116b
mov ecx, dword [ebp - 0x68]
movsx edx, byte [ecx]
cmp edx, 0x2a
je 0x4311ff
mov eax, dword [ebp + 0xc]
sub eax, 1
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x2cac], eax
jmp 0x4313ca
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x68]
add edx, 1
push edx
call dword [0x4a86d0]
add esp, 8
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x431280
cmp dword [ebp - 0x34], 0
jne 0x43124c
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 [0x4a86cc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x43124c
jmp 0x435acc
cmp dword [ebp - 0x2c], 0
jge 0x431266
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2cfc], eax
jmp 0x431275
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 0x43128f
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 0x4312bd
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 0x4313ca
cmp dword [ebp - 0xc], 0
je 0x4313a0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
je 0x4313a0
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 0x43135b
jmp 0x435acc
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1c]
and ecx, 0x20000
jne 0x43136b
jmp 0x4313a0
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], 0
je 0x43139e
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2cac], ecx
cmp dword [ebp - 0x2cac], 0
jge 0x43139e
mov edx, dword [ebp - 0x68]
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x2cac], eax
jmp 0x4313ca
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 0x4313ca
mov eax, dword [ebp - 0x68]
push eax
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x2cac], eax
jmp 0x430fdd
jmp 0x43116b
mov ecx, dword [ebp - 0x1c]
and ecx, 0xfffffdff
or ecx, 0x40
mov dword [ebp - 0x1c], ecx
jmp 0x430fdd
mov edx, dword [ebp - 0x1c]
and edx, 0x40
jne 0x4313fb
mov eax, dword [ebp - 0x1c]
or eax, 0x200
mov dword [ebp - 0x1c], eax
jmp 0x430fdd
mov ecx, dword [ebp - 0x1c]
and ecx, 0x80
jne 0x431417
mov edx, dword [ebp - 0x1c]
or edx, 0x100
mov dword [ebp - 0x1c], edx
jmp 0x430fdd
mov eax, dword [ebp - 0x1c]
and eax, 0xfffffeff
or eax, 0x80
mov dword [ebp - 0x1c], eax
jmp 0x430fdd
mov ecx, dword [ebp - 0x1c]
or ecx, 0x400
mov dword [ebp - 0x1c], ecx
jmp 0x430fdd
cmp dword [ebp - 8], 0
jne 0x4314be
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2cd0], eax
cmp dword [ebp - 0x2cd0], 0
je 0x4314be
mov edx, dword [ebp - 0x2cd0]
cmp dword [edx], 0
je 0x43148c
mov eax, dword [ebp - 0x2cd0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x43148c
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 0x4314be
mov ecx, dword [ebp - 0x2cd0]
cmp dword [ecx + 4], 0
je 0x4314be
mov edx, dword [ebp - 0x2cd0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4314be
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 0x4314d0
mov edx, dword [ebp - 0x1c]
or edx, 0x800
mov dword [ebp - 0x1c], edx
jmp 0x430fdd
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jne 0x4314fb
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x2e
je 0x4314f6
mov dword [ebp - 0x74], 0
jmp 0x43157f
cmp dword [ebp - 0x14], 2
jne 0x43157f
mov dword [ebp - 0x44], 0
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x63
je 0x43151e
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
cmp eax, 0x73
jne 0x431523
jmp 0x430fdd
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
test edx, edx
je 0x43157f
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 0x43157f
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + 1]
cmp eax, 0x63
je 0x431559
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 1]
cmp edx, 0x73
jne 0x43157f
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x2a
jne 0x431568
jmp 0x4315bc
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 0x430fdd
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 0x4315ac
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.0x43101e.49
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x2a
je 0x4315bc
jmp 0x430fdd
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 [0x4a86d0]
add esp, 8
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x43164c
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp dword [ebp - 0x34], 0
jne 0x431618
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 [0x4a86cc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x431618
jmp 0x435acc
cmp dword [ebp - 0x2c], 0
jge 0x431632
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d00], ecx
jmp 0x431641
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 0x43165b
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 0x431676
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 0x431785
cmp dword [ebp - 0xc], 0
je 0x431755
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x431755
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 0x43170e
jmp 0x435acc
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x431723
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x431753
cmp dword [ebp - 0x14], 2
jg 0x431740
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 0x43174a
mov dword [ebp - 0x2d04], 0
mov edx, dword [ebp - 0x2d04]
mov dword [ebp - 0x18], edx
jmp 0x431785
cmp dword [ebp - 0x14], 2
jg 0x431772
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 0x43177c
mov dword [ebp - 0x2d08], 0
mov eax, dword [ebp - 0x2d08]
mov dword [ebp - 0x18], eax
jmp 0x431817
mov ecx, dword [ebp - 0x78]
sub ecx, 0x30
mov dword [ebp - 0x18], ecx
jmp 0x43179e
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 0x4317c7
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 0x431795
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x24
jne 0x431817
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp dword [ebp - 0x34], 0
jne 0x431806
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 [0x4a86cc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x431806
jmp 0x435acc
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x2cbc], eax
jmp 0x430fdd
cmp dword [ebp - 0x14], 0
jne 0x43184d
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x289c], ecx
cmp dword [ebp - 0x289c], 0
jge 0x43184b
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 0x431867
cmp dword [ebp - 0x14], 1
jne 0x43185b
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x74], ecx
jmp 0x431867
cmp dword [ebp - 0x14], 2
jne 0x431867
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x44], edx
jmp 0x430fdd
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 0x4318dc
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
mov dword [ebp - 0x2c], ecx
jmp 0x4318b4
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 0x4318d7
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 0x4318a2
jmp 0x431a73
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x2a
jne 0x431a73
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp + 0xc]
add eax, 1
push eax
call dword [0x4a86d0]
add esp, 8
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx]
cmp edx, 0x24
jne 0x431975
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x34], 0
jne 0x431941
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 [0x4a86cc]
add esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x431941
jmp 0x435acc
cmp dword [ebp - 0x2c], 0
jge 0x43195b
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d0c], edx
jmp 0x43196a
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 0x431984
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 0x43199f
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 0x431a73
cmp dword [ebp - 0xc], 0
je 0x431a61
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x431a61
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 0x431a38
jmp 0x435acc
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x431a4d
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], ecx
jmp 0x431a5f
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 0x431a73
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 0x430fdd
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 0x431aac
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 0x431ab8
mov ecx, dword [ebp - 0x1c]
or ecx, 0x4000
mov dword [ebp - 0x1c], ecx
jmp 0x430fdd
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 0x431aef
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 0x431afb
mov ecx, dword [ebp - 0x1c]
or ecx, 0x2000
mov dword [ebp - 0x1c], ecx
jmp 0x430fdd
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
or edx, 0x10000
mov dword [ebp - 0x1c], edx
jmp 0x430fdd
mov dword [ebp - 0x6c], 0xffffffff
mov eax, dword [ebp - 0x1c]
and eax, 0xffe61fc7
or eax, 0x100000
mov dword [ebp - 0x1c], eax
jmp 0x430fdd
mov dword [ebp - 0x6c], 0xffffffff
mov ecx, dword [ebp - 0x1c]
and ecx, 0xffe61fc7
or ecx, 0x20
mov dword [ebp - 0x1c], ecx
jmp 0x430fdd
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0x1c]
and edx, 0xffe61fc7
or edx, 0x10
mov dword [ebp - 0x1c], edx
jmp 0x430fdd
mov eax, dword [ebp - 0x1c]
and eax, 0x11e038
je 0x431cc4
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4a88d4]
and edx, 3
jne 0x431b97
cmp dword [ebp - 0x78], 0x6e
jne 0x431c7d
mov eax, dword [ebp - 0x1c]
and eax, 0x8000
je 0x431bb0
mov dword [ebp - 0x2d10], 8
jmp 0x431c72
mov ecx, dword [ebp - 0x1c]
and ecx, 0x4000
je 0x431bca
mov dword [ebp - 0x2d14], 4
jmp 0x431c66
mov edx, dword [ebp - 0x1c]
and edx, 0x2000
je 0x431be1
mov dword [ebp - 0x2d18], 2
jmp 0x431c5a
mov eax, dword [ebp - 0x1c]
and eax, 8
je 0x431bf5
mov dword [ebp - 0x2d1c], 1
jmp 0x431c4e
mov ecx, dword [ebp - 0x1c]
and ecx, 0x100000
je 0x431c0c
mov dword [ebp - 0x2d20], 8
jmp 0x431c42
mov edx, dword [ebp - 0x1c]
and edx, 0x10
je 0x431c20
mov dword [ebp - 0x2d24], 4
jmp 0x431c36
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 0x431cc4
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4a88d4]
and edx, 4
je 0x431cc4
mov eax, dword [ebp - 0x1c]
and eax, 0x10000
je 0x431ca2
mov dword [ebp - 0x2d28], 8
jmp 0x431cbb
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 0x431ce1
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2d2c], ecx
jmp 0x431cf3
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 0x431d7b
cmp dword [ebp - 0xc], 0
je 0x431d49
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x431d49
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 0x431d49
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.0x432012.2
cmp dword [ebp - 0xc], 0
je 0x431fd9
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x431fd9
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 0x431e6c
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 0
je 0x431e46
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2d30], ecx
jmp 0x431e52
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 0x431ee5
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x3c], 2
jne 0x431eb5
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x14]
and eax, 0x20
je 0x431e8f
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x2d38], edx
jmp 0x431e9b
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 0x431ed9
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 0x431f4d
jmp 0x435acc
cmp dword [ebp - 0x18], 0
jne 0x431fc0
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 0x431fbe
jmp 0x431fd9
jmp 0x431fd4
cmp dword [ebp - 0x18], 0
jle 0x431fd4
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x64], eax
jmp 0x430cfc
jmp case.0x432012.2
mov ecx, dword [ebp - 0x78]
movzx edx, byte [ecx + 0x4a88d4]
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.0x432012.2
mov ecx, dword [ebp - 0x2d40]
movzx edx, byte [ecx + 0x435ee0]
jmp dword [edx*4 + 0x435ecc]
cmp dword [ebp - 0x6c], 8
je 0x43203a
cmp dword [ebp - 0x6c], 0
jne 0x43202e
mov eax, 1
test eax, eax
jne 0x43203a
cmp dword [ebp - 0x6c], 0x40
jne 0x432054
cmp dword [ebp - 0x6c], 0x40
jne 0x432054
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 0x432096
cmp dword [ebp - 0x6c], 4
je 0x432070
cmp dword [ebp - 0x6c], 0
jne 0x432064
xor edx, edx
jne 0x432070
cmp dword [ebp - 0x6c], 0x40
jne 0x432084
cmp dword [ebp - 0x6c], 0x20
jne 0x432084
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 0x432096
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.0x432012.2
cmp dword [ebp - 0x6c], 8
je 0x4320bc
cmp dword [ebp - 0x6c], 0
jne 0x4320b0
mov eax, 1
test eax, eax
jne 0x4320bc
cmp dword [ebp - 0x6c], 0x40
jne 0x4320d0
cmp dword [ebp - 0x6c], 0x40
jne 0x4320d0
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 0x4320e2
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.0x432012.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.0x432012.2
cmp dword [ebp - 0x44], 0
jl 0x432112
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.0x432012.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.0x432152.1
mov ecx, dword [ebp - 0x2d44]
movzx edx, byte [ecx + 0x435f24]
jmp dword [edx*4 + 0x435ef0]
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 0x430cfc
cmp dword [ebp - 0x34], 0
jne 0x432192
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 [0x4a86cc]
add esp, 0x10
mov dword [ebp - 0x34], eax
jmp 0x432197
jmp 0x435acc
cmp dword [ebp - 0x60], 0
jne 0x4321a2
jmp 0x435acc
mov edx, dword [ebp - 0x60]
cmp dword [edx + 0xc], 0
jne 0x4321f0
cmp dword [ebp - 0xc], 0
je 0x4321f0
mov eax, dword [ebp - 0xc]
cmp dword [eax + 8], 0
je 0x4321dc
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 0x4321dc
jmp 0x430cfc
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 0x43229b
push 0x24
call sub.MSVCR90.dll_malloc
add esp, 4
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jne 0x432208
jmp 0x435bbc
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0xc], 0
je 0x432268
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 0x432271
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 0x430cfc
cmp dword [ebp - 0x44], 0
jl 0x4322ca
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x28a4], eax
cmp dword [ebp - 0x28a4], 0
je 0x4322c3
mov ecx, dword [ebp - 0x28a4]
cmp dword [ecx], 0
jne 0x4322c8
jmp 0x430cfc
jmp 0x4322f2
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jne 0x4322dd
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 0x43231f
cmp dword [ebp - 0x74], 0
jl 0x43231d
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x74]
jle 0x43231d
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
jmp 0x432361
cmp dword [ebp - 0x74], 0
jge 0x432336
mov ecx, dword [ebp - 0x30]
push ecx
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x18], eax
jmp 0x432361
mov dword [ebp - 0x18], 0
jmp 0x432348
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x74]
jge 0x432361
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x18]
movsx edx, byte [ecx]
test edx, edx
jne 0x43235f
jmp 0x432361
jmp 0x43233f
mov eax, dword [ebp - 0x289c]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x43251b
mov ecx, dword [ebp - 0x1c]
and ecx, 0x200
je 0x43244d
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x4323c6
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x4323c1
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x30
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x432397
jmp 0x432448
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.00439a00
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 0x432441
jmp 0x435bbc
mov dword [ebp - 0x2c], 0
jmp 0x43251b
mov ecx, dword [ebp - 0x1c]
and ecx, 0x40
jne 0x43251b
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x432499
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x432494
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x20
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x43246a
jmp 0x43251b
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.00439a00
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 0x432514
jmp 0x435bbc
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x18]
jl 0x432697
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.0x432557
mov ecx, dword [ebp - 0x2d48]
jmp dword [ecx*4 + 0x435f7c]
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 0x432695
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 0x432715
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.0042c0b0
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 0x432715
jmp 0x435bbc
cmp dword [ebp - 0x2c], 0
jle 0x4327e2
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x43275f
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x43275a
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x20
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x432730
jmp 0x4327e2
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.00439a00
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 0x4327db
jmp 0x435bbc
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 0x43280c
jmp 0x4328b6
cmp dword [ebp - 0x44], 0
jle 0x4328b1
mov eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2cc0]
jae 0x432840
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 0x4328b1
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.00429b40
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 0x4328b1
jmp 0x435bbc
jmp 0x4322fd
jmp 0x430cfc
cmp dword [ebp - 0x44], 0
jl 0x4328de
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x4328d7
mov ecx, dword [ebp - 0x30]
movsx edx, byte [ecx]
test edx, edx
jne 0x4328dc
jmp 0x430cfc
jmp 0x4328fe
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 0x43290b
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 0x4329f9
mov eax, dword [ebp - 0x1c]
and eax, 0x40
jne 0x4329f9
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x432976
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x432971
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x20
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x432947
jmp 0x4329f9
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.00439a00
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 0x4329f2
jmp 0x435bbc
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 0x432a41
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
test edx, edx
je 0x432a3c
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 0x432a10
jmp 0x432ac5
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.00439a00
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 0x432abe
jmp 0x435bbc
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x2c], 0
jle 0x432b91
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x432b0f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x432b0a
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x20
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x432ae0
jmp 0x432b91
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.00439a00
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 0x432b8a
jmp 0x435bbc
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 0x432bb3
jmp 0x432c5e
cmp dword [ebp - 0x44], 0
jle 0x432c59
mov ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2cc0]
jae 0x432be7
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 0x432c59
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.00429b40
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 0x432c59
jmp 0x435bbc
jmp 0x432914
jmp 0x430cfc
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 0x432ca0
cmp dword [ebp - 0x6c], 0
jne 0x432c94
mov edx, 1
test edx, edx
jne 0x432ca0
cmp dword [ebp - 0x6c], 0x40
jne 0x432cae
cmp dword [ebp - 0x6c], 0x40
jne 0x432cae
mov eax, dword [ebp - 0x64]
cdq
mov ecx, dword [ebp - 0x60]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x432d1d
cmp dword [ebp - 0x6c], 4
je 0x432cca
cmp dword [ebp - 0x6c], 0
jne 0x432cbe
xor edx, edx
jne 0x432cca
cmp dword [ebp - 0x6c], 0x40
jne 0x432cd4
cmp dword [ebp - 0x6c], 0x20
jne 0x432cd4
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
mov dword [eax], ecx
jmp 0x432d1d
mov edx, 1
test edx, edx
je 0x432d05
cmp dword [ebp - 0x6c], 2
je 0x432cf9
cmp dword [ebp - 0x6c], 0
jne 0x432ced
xor eax, eax
jne 0x432cf9
cmp dword [ebp - 0x6c], 0x40
jne 0x432d05
cmp dword [ebp - 0x6c], 0x10
jne 0x432d05
mov ecx, dword [ebp - 0x60]
mov dx, word [ebp - 0x64]
mov word [ecx], dx
jmp 0x432d1d
cmp dword [ebp - 0x6c], 1
jne 0x432d15
mov eax, dword [ebp - 0x60]
mov cl, byte [ebp - 0x64]
mov byte [eax], cl
jmp 0x432d1d
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov dword [edx], eax
jmp 0x430cfc
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 0x433c81
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 0x432e37
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 0x432e37
mov dword [ebp - 0x78], 0x64
jmp case.0x432152.67
mov edx, dword [ebp - 0x1c]
and edx, 0xfffffe7f
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x44], 2
jl 0x432dd1
cmp dword [ebp - 0x44], 0x40
jle 0x432dd8
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 0x432e28
cmp dword [ebp - 0x44], 8
jge 0x432e00
xor edx, edx
cmp dword [ebp - 0x44], 4
setge dl
add edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x432e26
cmp dword [ebp - 0x44], 0x20
jge 0x432e17
xor eax, eax
cmp dword [ebp - 0x44], 0x10
setge al
add eax, 3
mov dword [ebp - 0x2c], eax
jmp 0x432e26
xor ecx, ecx
cmp dword [ebp - 0x44], 0x40
setge cl
add ecx, 5
mov dword [ebp - 0x2c], ecx
jmp 0x432e37
xor edx, edx
cmp dword [ebp - 0x44], 0xa
setne dl
sub edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x6c], 8
je 0x432e58
cmp dword [ebp - 0x6c], 0
jne 0x432e4c
mov eax, 1
test eax, eax
jne 0x432e58
cmp dword [ebp - 0x6c], 0x40
jne 0x432e6b
cmp dword [ebp - 0x6c], 0x40
jne 0x432e6b
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], edx
jmp 0x432eac
cmp dword [ebp - 0x6c], 4
je 0x432e8f
cmp dword [ebp - 0x6c], 0
jne 0x432e7b
xor eax, eax
jne 0x432e8f
cmp dword [ebp - 0x6c], 0x40
jne 0x433bad
cmp dword [ebp - 0x6c], 0x20
jne 0x433bad
cmp dword [ebp - 0x78], 0x64
jne 0x432ea1
mov eax, dword [ebp - 0x60]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp 0x432eac
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 0x432ebf
cmp dword [ebp - 0x74], 0
jne 0x432ebf
jmp 0x43516c
cmp dword [ebp - 0x3c], 0
jg 0x432f57
jl 0x432ed5
cmp dword [ebp - 0x40], 0
jae 0x432f57
cmp dword [ebp - 0x78], 0x64
jne 0x432f57
mov ecx, dword [ebp - 0x1c]
or ecx, 0x10000000
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x40], 0
jne 0x432f44
cmp dword [ebp - 0x3c], 0x80000000
jne 0x432f44
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
push 0x80000000
push 0
call fcn.00442e10
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.00442dd0
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 0x432f57
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 0x433b18
cmp dword [ebp - 0x3c], 0
ja 0x432f74
cmp dword [ebp - 0x40], 0x2710
jb 0x4334de
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.00442e10
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.00442dd0
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 0x433106
jl 0x432ff8
cmp dword [ebp - 0x2cd8], 0x1388
jae 0x433106
cmp dword [ebp - 0x2cd4], 0
jg 0x43305a
jl 0x43300f
cmp dword [ebp - 0x2cd8], 0x7d0
jae 0x43305a
cmp dword [ebp - 0x2cd4], 0
jg 0x43302e
jl 0x433026
cmp dword [ebp - 0x2cd8], 0x3e8
jae 0x43302e
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x433055
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 0x433101
cmp dword [ebp - 0x2cd4], 0
jg 0x43309a
jl 0x433071
cmp dword [ebp - 0x2cd8], 0xbb8
jae 0x43309a
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 0x433101
cmp dword [ebp - 0x2cd4], 0
jg 0x4330da
jl 0x4330b1
cmp dword [ebp - 0x2cd8], 0xfa0
jae 0x4330da
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 0x433101
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 0x433230
cmp dword [ebp - 0x2cd4], 0
jg 0x433189
jl 0x43311d
cmp dword [ebp - 0x2cd8], 0x1b58
jae 0x433189
cmp dword [ebp - 0x2cd4], 0
jg 0x43315d
jl 0x433134
cmp dword [ebp - 0x2cd8], 0x1770
jae 0x43315d
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 0x433184
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 0x433230
cmp dword [ebp - 0x2cd4], 0
jg 0x4331c9
jl 0x4331a0
cmp dword [ebp - 0x2cd8], 0x1f40
jae 0x4331c9
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 0x433230
cmp dword [ebp - 0x2cd4], 0
jg 0x433209
jl 0x4331e0
cmp dword [ebp - 0x2cd8], 0x2328
jae 0x433209
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 0x433230
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 0x43335c
jl 0x43324f
cmp dword [ebp - 0x2cd8], 0x1f4
jae 0x43335c
cmp dword [ebp - 0x2cd4], 0
jg 0x4332ad
jl 0x433266
cmp dword [ebp - 0x2cd8], 0xc8
jae 0x4332ad
cmp dword [ebp - 0x2cd4], 0
jg 0x433283
jl 0x43327a
cmp dword [ebp - 0x2cd8], 0x64
jae 0x433283
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x4332a8
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 0x433357
cmp dword [ebp - 0x2cd4], 0
jg 0x4332ee
jl 0x4332c4
cmp dword [ebp - 0x2cd8], 0x12c
jae 0x4332ee
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 0x433357
cmp dword [ebp - 0x2cd4], 0
jg 0x43332f
jl 0x433305
cmp dword [ebp - 0x2cd8], 0x190
jae 0x43332f
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 0x433357
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 0x43348b
cmp dword [ebp - 0x2cd4], 0
jg 0x4333e1
jl 0x433373
cmp dword [ebp - 0x2cd8], 0x2bc
jae 0x4333e1
cmp dword [ebp - 0x2cd4], 0
jg 0x4333b4
jl 0x43338a
cmp dword [ebp - 0x2cd8], 0x258
jae 0x4333b4
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 0x4333dc
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 0x43348b
cmp dword [ebp - 0x2cd4], 0
jg 0x433422
jl 0x4333f8
cmp dword [ebp - 0x2cd8], 0x320
jae 0x433422
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 0x43348b
cmp dword [ebp - 0x2cd4], 0
jg 0x433463
jl 0x433439
cmp dword [ebp - 0x2cd8], 0x384
jae 0x433463
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 0x43348b
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.00442db0
mov dword [ebp - 0x2cd8], eax
mov dword [ebp - 0x2cd4], edx
mov ecx, dword [ebp - 0x2cd8]
add ecx, 0x4a85f8
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 0x432f61
cmp dword [ebp - 0x3c], 0
jg 0x433562
jl 0x4334ec
cmp dword [ebp - 0x40], 0x64
jae 0x433562
cmp dword [ebp - 0x3c], 0
jg 0x433516
jl 0x4334fa
cmp dword [ebp - 0x40], 0xa
jae 0x433516
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 0x43355d
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.00442db0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
add ecx, 0x4a85f8
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 0x433b13
cmp dword [ebp - 0x3c], 0
jg 0x433771
jl 0x43357b
cmp dword [ebp - 0x40], 0x3e8
jae 0x433771
mov edx, dword [ebp - 0x30]
sub edx, 3
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x3c], 0
jg 0x43365a
jl 0x43359d
cmp dword [ebp - 0x40], 0x1f4
jae 0x43365a
cmp dword [ebp - 0x3c], 0
jg 0x4335de
jl 0x4335ae
cmp dword [ebp - 0x40], 0xc8
jae 0x4335de
cmp dword [ebp - 0x3c], 0
jg 0x4335c4
jl 0x4335bc
cmp dword [ebp - 0x40], 0x64
jae 0x4335c4
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x4335dc
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 0x433655
cmp dword [ebp - 0x3c], 0
jg 0x43360c
jl 0x4335ef
cmp dword [ebp - 0x40], 0x12c
jae 0x43360c
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 0x433655
cmp dword [ebp - 0x3c], 0
jg 0x43363a
jl 0x43361d
cmp dword [ebp - 0x40], 0x190
jae 0x43363a
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 0x433655
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 0x43372d
cmp dword [ebp - 0x3c], 0
jg 0x4336b6
jl 0x43366b
cmp dword [ebp - 0x40], 0x2bc
jae 0x4336b6
cmp dword [ebp - 0x3c], 0
jg 0x433699
jl 0x43367c
cmp dword [ebp - 0x40], 0x258
jae 0x433699
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 0x4336b4
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 0x43372d
cmp dword [ebp - 0x3c], 0
jg 0x4336e4
jl 0x4336c7
cmp dword [ebp - 0x40], 0x320
jae 0x4336e4
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 0x43372d
cmp dword [ebp - 0x3c], 0
jg 0x433712
jl 0x4336f5
cmp dword [ebp - 0x40], 0x384
jae 0x433712
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 0x43372d
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.00442db0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
add ecx, 0x4a85f8
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 0x433b13
mov edx, dword [ebp - 0x30]
sub edx, 4
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x3c], 0
jg 0x433856
jl 0x433793
cmp dword [ebp - 0x40], 0x1388
jae 0x433856
cmp dword [ebp - 0x3c], 0
jg 0x4337da
jl 0x4337a4
cmp dword [ebp - 0x40], 0x7d0
jae 0x4337da
cmp dword [ebp - 0x3c], 0
jg 0x4337bd
jl 0x4337b5
cmp dword [ebp - 0x40], 0x3e8
jae 0x4337bd
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x4337d8
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 0x433851
cmp dword [ebp - 0x3c], 0
jg 0x433808
jl 0x4337eb
cmp dword [ebp - 0x40], 0xbb8
jae 0x433808
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 0x433851
cmp dword [ebp - 0x3c], 0
jg 0x433836
jl 0x433819
cmp dword [ebp - 0x40], 0xfa0
jae 0x433836
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 0x433851
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 0x433929
cmp dword [ebp - 0x3c], 0
jg 0x4338b2
jl 0x433867
cmp dword [ebp - 0x40], 0x1b58
jae 0x4338b2
cmp dword [ebp - 0x3c], 0
jg 0x433895
jl 0x433878
cmp dword [ebp - 0x40], 0x1770
jae 0x433895
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 0x4338b0
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 0x433929
cmp dword [ebp - 0x3c], 0
jg 0x4338e0
jl 0x4338c3
cmp dword [ebp - 0x40], 0x1f40
jae 0x4338e0
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 0x433929
cmp dword [ebp - 0x3c], 0
jg 0x43390e
jl 0x4338f1
cmp dword [ebp - 0x40], 0x2328
jae 0x43390e
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 0x433929
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 0x433a01
jl 0x433942
cmp dword [ebp - 0x40], 0x1f4
jae 0x433a01
cmp dword [ebp - 0x3c], 0
jg 0x433985
jl 0x433953
cmp dword [ebp - 0x40], 0xc8
jae 0x433985
cmp dword [ebp - 0x3c], 0
jg 0x43396a
jl 0x433961
cmp dword [ebp - 0x40], 0x64
jae 0x43396a
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x30
jmp 0x433983
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 0x4339fc
cmp dword [ebp - 0x3c], 0
jg 0x4339b3
jl 0x433996
cmp dword [ebp - 0x40], 0x12c
jae 0x4339b3
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 0x4339fc
cmp dword [ebp - 0x3c], 0
jg 0x4339e1
jl 0x4339c4
cmp dword [ebp - 0x40], 0x190
jae 0x4339e1
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 0x4339fc
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 0x433ad4
cmp dword [ebp - 0x3c], 0
jg 0x433a5d
jl 0x433a12
cmp dword [ebp - 0x40], 0x2bc
jae 0x433a5d
cmp dword [ebp - 0x3c], 0
jg 0x433a40
jl 0x433a23
cmp dword [ebp - 0x40], 0x258
jae 0x433a40
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 0x433a5b
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 0x433ad4
cmp dword [ebp - 0x3c], 0
jg 0x433a8b
jl 0x433a6e
cmp dword [ebp - 0x40], 0x320
jae 0x433a8b
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 0x433ad4
cmp dword [ebp - 0x3c], 0
jg 0x433ab9
jl 0x433a9c
cmp dword [ebp - 0x40], 0x384
jae 0x433ab9
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 0x433ad4
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.00442db0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x40]
add edx, 0x4a85f8
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 0x433ba8
cmp dword [ebp - 0x20], 0
jle 0x433b5d
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.00442b60
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
or ecx, dword [ebp - 0x3c]
jne 0x433b1e
jmp 0x433ba8
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.00442d30
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.00442e10
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
jne 0x433b5d
jmp 0x4343fd
mov ecx, 1
test ecx, ecx
je 0x433c24
cmp dword [ebp - 0x6c], 2
je 0x433bd2
cmp dword [ebp - 0x6c], 0
jne 0x433bc6
xor edx, edx
jne 0x433bd2
cmp dword [ebp - 0x6c], 0x40
jne 0x433c24
cmp dword [ebp - 0x6c], 0x10
jne 0x433c24
cmp dword [ebp - 0xc], 0
je 0x433c07
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
je 0x433c07
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1c]
and edx, 0x20000
je 0x433c07
cmp dword [ebp - 0x78], 0x64
jne 0x433bfe
movsx eax, word [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x433c05
movzx ecx, word [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x433c1d
cmp dword [ebp - 0x78], 0x64
jne 0x433c16
movsx edx, word [ebp - 0x60]
mov dword [ebp - 0x18], edx
jmp 0x433c1d
movzx eax, word [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x433c81
cmp dword [ebp - 0x6c], 1
jne 0x433c7b
cmp dword [ebp - 0xc], 0
je 0x433c5e
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x433c5e
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x433c5e
cmp dword [ebp - 0x78], 0x64
jne 0x433c55
movsx ecx, byte [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x433c5c
movzx edx, byte [ebp - 0x60]
mov dword [ebp - 0x18], edx
jmp 0x433c74
cmp dword [ebp - 0x78], 0x64
jne 0x433c6d
movsx eax, byte [ebp - 0x60]
mov dword [ebp - 0x18], eax
jmp 0x433c74
movzx ecx, byte [ebp - 0x60]
mov dword [ebp - 0x18], ecx
jmp 0x433c81
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x433c92
cmp dword [ebp - 0x74], 0
jne 0x433c92
jmp 0x43516c
cmp dword [ebp - 0x18], 0
jge 0x433cee
cmp dword [ebp - 0x78], 0x64
jne 0x433cee
mov eax, dword [ebp - 0x1c]
or eax, 0x10000000
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], 0x80000000
jne 0x433ce6
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 0x433cee
mov ecx, dword [ebp - 0x18]
neg ecx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x20], 0
jge 0x434397
cmp dword [ebp - 0x18], 0x2710
jb 0x433f87
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 0x433dbb
cmp dword [ebp - 0x2c], 0x7d0
jge 0x433d6b
cmp dword [ebp - 0x2c], 0x3e8
jge 0x433d57
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x433d69
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x31
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x3e8
mov dword [ebp - 0x2c], ecx
jmp 0x433db6
cmp dword [ebp - 0x2c], 0xbb8
jge 0x433d87
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x32
mov eax, dword [ebp - 0x2c]
sub eax, 0x7d0
mov dword [ebp - 0x2c], eax
jmp 0x433db6
cmp dword [ebp - 0x2c], 0xfa0
jge 0x433da4
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x2c]
sub edx, 0xbb8
mov dword [ebp - 0x2c], edx
jmp 0x433db6
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x34
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xfa0
mov dword [ebp - 0x2c], ecx
jmp 0x433e3f
cmp dword [ebp - 0x2c], 0x1b58
jge 0x433df4
cmp dword [ebp - 0x2c], 0x1770
jge 0x433de0
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x35
mov eax, dword [ebp - 0x2c]
sub eax, 0x1388
mov dword [ebp - 0x2c], eax
jmp 0x433df2
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x2c]
sub edx, 0x1770
mov dword [ebp - 0x2c], edx
jmp 0x433e3f
cmp dword [ebp - 0x2c], 0x1f40
jge 0x433e11
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x37
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1b58
mov dword [ebp - 0x2c], ecx
jmp 0x433e3f
cmp dword [ebp - 0x2c], 0x2328
jge 0x433e2d
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x38
mov eax, dword [ebp - 0x2c]
sub eax, 0x1f40
mov dword [ebp - 0x2c], eax
jmp 0x433e3f
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 0x433ec5
cmp dword [ebp - 0x2c], 0xc8
jge 0x433e72
cmp dword [ebp - 0x2c], 0x64
jge 0x433e60
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x433e70
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x31
mov edx, dword [ebp - 0x2c]
sub edx, 0x64
mov dword [ebp - 0x2c], edx
jmp 0x433ec0
cmp dword [ebp - 0x2c], 0x12c
jge 0x433e90
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x32
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xc8
mov dword [ebp - 0x2c], ecx
jmp 0x433ec0
cmp dword [ebp - 0x2c], 0x190
jge 0x433ead
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x33
mov eax, dword [ebp - 0x2c]
sub eax, 0x12c
mov dword [ebp - 0x2c], eax
jmp 0x433ec0
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x34
mov edx, dword [ebp - 0x2c]
sub edx, 0x190
mov dword [ebp - 0x2c], edx
jmp 0x433f4e
cmp dword [ebp - 0x2c], 0x2bc
jge 0x433f00
cmp dword [ebp - 0x2c], 0x258
jge 0x433eec
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x35
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1f4
mov dword [ebp - 0x2c], ecx
jmp 0x433efe
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x36
mov eax, dword [ebp - 0x2c]
sub eax, 0x258
mov dword [ebp - 0x2c], eax
jmp 0x433f4e
cmp dword [ebp - 0x2c], 0x320
jge 0x433f1e
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x37
mov edx, dword [ebp - 0x2c]
sub edx, 0x2bc
mov dword [ebp - 0x2c], edx
jmp 0x433f4e
cmp dword [ebp - 0x2c], 0x384
jge 0x433f3c
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x38
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x320
mov dword [ebp - 0x2c], ecx
jmp 0x433f4e
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, 0x4a85f8
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 0x433cf8
cmp dword [ebp - 0x18], 0x64
jge 0x433fea
cmp dword [ebp - 0x18], 0xa
jge 0x433fa9
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 0x433fe5
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, 0x4a85f8
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 0x434395
cmp dword [ebp - 0x18], 0x3e8
jge 0x43413e
mov eax, dword [ebp - 0x30]
sub eax, 3
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x18], 0x1f4
jge 0x434081
cmp dword [ebp - 0x18], 0xc8
jge 0x434031
cmp dword [ebp - 0x18], 0x64
jge 0x434020
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x43402f
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x31
mov eax, dword [ebp - 0x18]
sub eax, 0x64
mov dword [ebp - 0x18], eax
jmp 0x43407c
cmp dword [ebp - 0x18], 0x12c
jge 0x43404e
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x32
mov edx, dword [ebp - 0x18]
sub edx, 0xc8
mov dword [ebp - 0x18], edx
jmp 0x43407c
cmp dword [ebp - 0x18], 0x190
jge 0x43406b
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x33
mov ecx, dword [ebp - 0x18]
sub ecx, 0x12c
mov dword [ebp - 0x18], ecx
jmp 0x43407c
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x34
mov eax, dword [ebp - 0x18]
sub eax, 0x190
mov dword [ebp - 0x18], eax
jmp 0x434106
cmp dword [ebp - 0x18], 0x2bc
jge 0x4340bb
cmp dword [ebp - 0x18], 0x258
jge 0x4340a7
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x35
mov edx, dword [ebp - 0x18]
sub edx, 0x1f4
mov dword [ebp - 0x18], edx
jmp 0x4340b9
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x36
mov ecx, dword [ebp - 0x18]
sub ecx, 0x258
mov dword [ebp - 0x18], ecx
jmp 0x434106
cmp dword [ebp - 0x18], 0x320
jge 0x4340d7
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x37
mov eax, dword [ebp - 0x18]
sub eax, 0x2bc
mov dword [ebp - 0x18], eax
jmp 0x434106
cmp dword [ebp - 0x18], 0x384
jge 0x4340f4
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x38
mov edx, dword [ebp - 0x18]
sub edx, 0x320
mov dword [ebp - 0x18], edx
jmp 0x434106
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, 0x4a85f8
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 0x434395
mov ecx, dword [ebp - 0x30]
sub ecx, 4
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x18], 0x1388
jge 0x4341ce
cmp dword [ebp - 0x18], 0x7d0
jge 0x43417e
cmp dword [ebp - 0x18], 0x3e8
jge 0x43416a
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x30
jmp 0x43417c
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x31
mov ecx, dword [ebp - 0x18]
sub ecx, 0x3e8
mov dword [ebp - 0x18], ecx
jmp 0x4341c9
cmp dword [ebp - 0x18], 0xbb8
jge 0x43419a
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x32
mov eax, dword [ebp - 0x18]
sub eax, 0x7d0
mov dword [ebp - 0x18], eax
jmp 0x4341c9
cmp dword [ebp - 0x18], 0xfa0
jge 0x4341b7
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x33
mov edx, dword [ebp - 0x18]
sub edx, 0xbb8
mov dword [ebp - 0x18], edx
jmp 0x4341c9
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x34
mov ecx, dword [ebp - 0x18]
sub ecx, 0xfa0
mov dword [ebp - 0x18], ecx
jmp 0x434252
cmp dword [ebp - 0x18], 0x1b58
jge 0x434207
cmp dword [ebp - 0x18], 0x1770
jge 0x4341f3
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x35
mov eax, dword [ebp - 0x18]
sub eax, 0x1388
mov dword [ebp - 0x18], eax
jmp 0x434205
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x36
mov edx, dword [ebp - 0x18]
sub edx, 0x1770
mov dword [ebp - 0x18], edx
jmp 0x434252
cmp dword [ebp - 0x18], 0x1f40
jge 0x434224
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x37
mov ecx, dword [ebp - 0x18]
sub ecx, 0x1b58
mov dword [ebp - 0x18], ecx
jmp 0x434252
cmp dword [ebp - 0x18], 0x2328
jge 0x434240
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x38
mov eax, dword [ebp - 0x18]
sub eax, 0x1f40
mov dword [ebp - 0x18], eax
jmp 0x434252
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 0x4342d8
cmp dword [ebp - 0x18], 0xc8
jge 0x434285
cmp dword [ebp - 0x18], 0x64
jge 0x434273
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x30
jmp 0x434283
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x31
mov edx, dword [ebp - 0x18]
sub edx, 0x64
mov dword [ebp - 0x18], edx
jmp 0x4342d3
cmp dword [ebp - 0x18], 0x12c
jge 0x4342a3
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x32
mov ecx, dword [ebp - 0x18]
sub ecx, 0xc8
mov dword [ebp - 0x18], ecx
jmp 0x4342d3
cmp dword [ebp - 0x18], 0x190
jge 0x4342c0
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x33
mov eax, dword [ebp - 0x18]
sub eax, 0x12c
mov dword [ebp - 0x18], eax
jmp 0x4342d3
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x34
mov edx, dword [ebp - 0x18]
sub edx, 0x190
mov dword [ebp - 0x18], edx
jmp 0x434361
cmp dword [ebp - 0x18], 0x2bc
jge 0x434313
cmp dword [ebp - 0x18], 0x258
jge 0x4342ff
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x35
mov ecx, dword [ebp - 0x18]
sub ecx, 0x1f4
mov dword [ebp - 0x18], ecx
jmp 0x434311
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0x36
mov eax, dword [ebp - 0x18]
sub eax, 0x258
mov dword [ebp - 0x18], eax
jmp 0x434361
cmp dword [ebp - 0x18], 0x320
jge 0x434331
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 1], 0x37
mov edx, dword [ebp - 0x18]
sub edx, 0x2bc
mov dword [ebp - 0x18], edx
jmp 0x434361
cmp dword [ebp - 0x18], 0x384
jge 0x43434f
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x38
mov ecx, dword [ebp - 0x18]
sub ecx, 0x320
mov dword [ebp - 0x18], ecx
jmp 0x434361
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, 0x4a85f8
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 0x4343fd
cmp dword [ebp - 0x20], 0
jle 0x4343cd
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 0x43439d
jmp 0x4343fd
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 0x4343cd
cmp dword [ebp - 0x20], 0
jge 0x4344f1
mov eax, dword [ebp - 0x1c]
and eax, 0x800
je 0x4344f1
mov ecx, dword [ebp - 0x28a0]
sub ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 3
jle 0x4344f1
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jne 0x434446
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 0x434496
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 0x434461
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0x28a0]
jne 0x4344a3
jmp 0x4344dc
mov edx, dword [ebp - 0x28a0]
sub edx, 3
cmp dword [ebp - 0x30], edx
ja 0x4344cb
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 0x434461
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 0x43453c
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 0x43453c
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x74]
sub edx, 1
mov dword [ebp - 0x74], edx
test ecx, ecx
jle 0x43453c
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x43451b
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x4346a3
cmp dword [ebp - 0x78], 0x6f
jne 0x434570
mov eax, dword [ebp - 0x30]
movsx ecx, byte [eax]
cmp ecx, 0x30
je 0x43456b
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x30
jmp 0x4346a3
cmp dword [ebp - 0x289c], 0
jle 0x43460e
mov ecx, dword [ebp - 0x1c]
and ecx, 0x200
je 0x43460e
cmp dword [ebp - 0x78], 0x78
je 0x434598
cmp dword [ebp - 0x78], 0x58
jne 0x4345a1
mov dword [ebp - 0x2c], 0
jmp 0x4345c1
cmp dword [ebp - 0x14], 2
jge 0x4345b2
mov edx, dword [ebp - 0x289c]
mov dword [ebp - 0x2c], edx
jmp 0x4345c1
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 0x43460e
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x30
jmp 0x4345ed
cmp dword [ebp - 0x78], 0x78
je 0x43461a
cmp dword [ebp - 0x78], 0x58
jne 0x43463c
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 0x4346a3
cmp dword [ebp - 0x14], 2
jl 0x4346a3
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 0x43466d
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 0x4346a3
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 + 0x4a85f9]
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 + 0x4a85f8]
mov byte [eax], dl
jmp 0x43516c
cmp dword [ebp - 0x6c], 8
je 0x4346c9
cmp dword [ebp - 0x6c], 0
jne 0x4346bd
mov eax, 1
test eax, eax
jne 0x4346c9
cmp dword [ebp - 0x6c], 0x40
jne 0x4346d4
cmp dword [ebp - 0x6c], 0x40
jne 0x4346d4
fld qword [ebp - 0x60]
fstp qword [ebp - 0x2cc8]
jmp 0x434725
cmp dword [ebp - 0xc], 0
je 0x434711
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 4], 0
je 0x434711
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x1c]
and eax, 0x20000
je 0x434711
cmp dword [ebp - 0x6c], 8
je 0x434711
cmp dword [ebp - 0x6c], 0
jne 0x434705
mov ecx, 1
test ecx, ecx
jne 0x434711
cmp dword [ebp - 0x6c], 0x40
jne 0x43471c
cmp dword [ebp - 0x6c], 0x40
jne 0x43471c
fld qword [ebp - 0x60]
fstp qword [ebp - 0x2898]
jmp 0x434725
fld dword [ebp - 0x60]
fstp qword [ebp - 0x2898]
cmp dword [ebp - 0x78], 0x65
je 0x434735
cmp dword [ebp - 0x78], 0x45
jne 0x43481d
cmp dword [ebp - 0x74], 0
jge 0x434747
mov dword [ebp - 0x2d4c], 6
jmp 0x434750
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 0x434783
cmp dword [ebp - 0x6c], 0
jne 0x434777
mov edx, 1
test edx, edx
jne 0x434783
cmp dword [ebp - 0x6c], 0x40
jne 0x4347cc
cmp dword [ebp - 0x6c], 0x40
jne 0x4347cc
cmp dword [ebp - 0x2c], 0x400
jge 0x434797
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2d50], eax
jmp 0x4347a1
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x434813
cmp dword [ebp - 0x2c], 0x400
jge 0x4347e0
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2d54], edx
jmp 0x4347ea
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x434aca
cmp dword [ebp - 0x78], 0x66
je 0x43482d
cmp dword [ebp - 0x78], 0x46
jne 0x434904
cmp dword [ebp - 0x74], 0
jge 0x43483f
mov dword [ebp - 0x2d58], 6
jmp 0x434848
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 0x434872
cmp dword [ebp - 0x6c], 0
jne 0x434866
mov eax, 1
test eax, eax
jne 0x434872
cmp dword [ebp - 0x6c], 0x40
jne 0x4348bb
cmp dword [ebp - 0x6c], 0x40
jne 0x4348bb
cmp dword [ebp - 0x74], 0x400
jge 0x434886
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2d5c], ecx
jmp 0x434890
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x4348ff
cmp dword [ebp - 0x74], 0x400
jge 0x4348cf
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2d60], eax
jmp 0x4348d9
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
jmp 0x434e12
cmp dword [ebp - 0x74], 0
jge 0x434916
mov dword [ebp - 0x2d64], 6
jmp 0x43493d
cmp dword [ebp - 0x74], 0
jne 0x434928
mov dword [ebp - 0x2d68], 1
jmp 0x434931
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 0x434967
cmp dword [ebp - 0x6c], 0
jne 0x43495b
mov edx, 1
test edx, edx
jne 0x434967
cmp dword [ebp - 0x6c], 0x40
jne 0x4349db
cmp dword [ebp - 0x6c], 0x40
jne 0x4349db
cmp dword [ebp - 0x74], 0x400
jge 0x43497b
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2d6c], eax
jmp 0x434985
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
fldz
fcomp qword [ebp - 0x2cc8]
fnstsw ax
test ah, 0x44
jp 0x4349c6
mov dword [ebp - 0x10], 1
jmp 0x4349d9
mov edx, dword [ebp - 0x2cb4]
movsx eax, byte [edx]
cmp eax, 0x49
jne 0x4349d9
jmp 0x434e29
jmp 0x434a4d
cmp dword [ebp - 0x74], 0x400
jge 0x4349ef
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2d70], ecx
jmp 0x4349f9
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.00438660
add esp, 0x14
mov dword [ebp - 0x2cb4], eax
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jp 0x434a3a
mov dword [ebp - 0x10], 1
jmp 0x434a4d
mov eax, dword [ebp - 0x2cb4]
movsx ecx, byte [eax]
cmp ecx, 0x49
jne 0x434a4d
jmp 0x434e29
mov edx, dword [ebp - 0x1c]
and edx, 0x400
jne 0x434a9b
mov eax, dword [0x4a839c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x74]
jle 0x434a6e
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 0x434a90
mov ecx, dword [ebp - 0x2cb4]
add ecx, dword [ebp - 0x2c]
movsx edx, byte [ecx]
cmp edx, 0x30
jne 0x434a90
jmp 0x434a6e
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x434aa1
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x10], 0xfffffffd
jl 0x434aaf
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x74]
jle 0x434abc
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x74], eax
jmp 0x434aca
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 0x74], ecx
jmp 0x434e12
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 0x434ae6
jmp 0x434e29
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 0x434b28
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 0x434b32
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 0x434bcb
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2cdc], eax
cmp dword [ebp - 0x2cdc], 0
je 0x434bcb
mov edx, dword [ebp - 0x2cdc]
cmp dword [edx], 0
je 0x434b99
mov eax, dword [ebp - 0x2cdc]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x434b99
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 0x434bcb
mov ecx, dword [ebp - 0x2cdc]
cmp dword [ecx + 4], 0
je 0x434bcb
mov edx, dword [ebp - 0x2cdc]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x434bcb
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 0x434bdc
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x434bf6
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 0x434c5c
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
ja 0x434c5c
jmp 0x434c11
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 0x434cb8
cmp dword [ebp - 0x6c], 0
jne 0x434cac
mov eax, 1
test eax, eax
jne 0x434cb8
cmp dword [ebp - 0x6c], 0x40
jne 0x434ce5
cmp dword [ebp - 0x6c], 0x40
jne 0x434ce5
fldz
fcomp qword [ebp - 0x2cc8]
fnstsw ax
test ah, 0x44
jnp 0x434cd1
fld1
fstp qword [ebp - 0x2d7c]
jmp 0x434cd9
fldz
fstp qword [ebp - 0x2d7c]
fld qword [ebp - 0x2d7c]
fstp qword [ebp - 0x2898]
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jnp 0x434d4a
mov ecx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jns 0x434d07
mov edx, dword [ebp - 0x2c]
neg edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 9
jle 0x434d48
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 0x434d07
jmp 0x434d51
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 0x434d97
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 0x434db8
fldz
fcomp qword [ebp - 0x2898]
fnstsw ax
test ah, 0x44
jnp 0x434db8
mov dword [ebp - 0x2d80], 0x2d
jmp 0x434dc2
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 0x435152
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 0x434e59
mov edx, dword [ebp - 0x2cb4]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
add eax, dword [0x4a839c]
mov dword [ebp - 0x28a0], eax
mov ecx, dword [ebp - 0x2cb0]
mov dword [ebp - 0x2cb4], ecx
mov dword [ebp - 0x74], 0
jmp 0x435152
cmp dword [ebp - 8], 0
jne 0x434ed5
mov dword [ebp - 8], 0x2e
call dword [sym.imp.MSVCR90.dll_localeconv]
mov dword [ebp - 0x2ce0], eax
cmp dword [ebp - 0x2ce0], 0
je 0x434ed5
mov edx, dword [ebp - 0x2ce0]
cmp dword [edx], 0
je 0x434ea3
mov eax, dword [ebp - 0x2ce0]
mov ecx, dword [eax]
movsx edx, byte [ecx]
test edx, edx
je 0x434ea3
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 0x434ed5
mov ecx, dword [ebp - 0x2ce0]
cmp dword [ecx + 4], 0
je 0x434ed5
mov edx, dword [ebp - 0x2ce0]
mov eax, dword [edx + 4]
movsx ecx, byte [eax]
test ecx, ecx
je 0x434ed5
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 0x434fb7
mov edx, dword [ebp - 0x1c]
and edx, 0x800
je 0x434fb7
mov eax, dword [ebp - 0x10]
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jne 0x434f2a
mov dword [ebp - 0x2c], 3
mov edx, dword [ebp - 0x2cb4]
cmp edx, dword [ebp - 0x2cb0]
jae 0x434fb5
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 0x434fb5
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jne 0x434fb0
mov edx, dword [ebp - 0x2cb0]
sub edx, 3
cmp dword [ebp - 0x2cb4], edx
ja 0x434fb0
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 0x434f2a
jmp 0x435002
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
jae 0x435002
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 0x435002
jmp 0x434fb7
mov edx, dword [ebp - 0x28a0]
cmp edx, dword [ebp - 0x30]
jne 0x435025
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 0x435036
mov edx, dword [ebp - 0x1c]
and edx, 0x400
je 0x435050
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 0x4350bd
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x74]
jge 0x435071
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2d84], edx
jmp 0x43507a
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 0x4350bd
mov ecx, dword [ebp - 0x28a0]
mov byte [ecx], 0x30
mov edx, dword [ebp - 0x28a0]
add edx, 1
mov dword [ebp - 0x28a0], edx
jmp 0x435095
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 0x435123
mov eax, dword [ebp - 0x2cb4]
cmp eax, dword [ebp - 0x2cb0]
ja 0x435123
jmp 0x4350d8
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 0x43516c
mov eax, dword [ebp - 0x1c]
or eax, 0x10000000
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x435180
cmp dword [ebp - 0x289c], 0
jg 0x435180
jmp 0x4354ec
mov ecx, dword [ebp - 0x1c]
and ecx, 0x10000180
je 0x4351c3
mov edx, dword [ebp - 0x1c]
and edx, 0x10000000
je 0x4351a2
mov dword [ebp - 0x2d88], 0x2d
jmp 0x4351ba
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 0x435219
mov dword [ebp - 0x18], 0
jmp 0x43525d
mov edx, dword [ebp - 0x1c]
and edx, 0x200
jne 0x43525d
mov eax, dword [ebp - 0x1c]
and eax, 0x40
je 0x435236
mov ecx, dword [ebp - 0x18]
neg ecx
mov dword [ebp - 0x18], ecx
jmp 0x43525d
mov edx, dword [ebp - 0x1c]
and edx, 0x10000180
je 0x43525d
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 0x43531a
mov edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2cc0]
jae 0x435296
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 0x435308
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.00429b40
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 0x435308
jmp 0x435bbc
cmp dword [ebp - 0x78], 0x20
je 0x43531a
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 0x435407
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 0x435382
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x43537d
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 0x435351
jmp 0x435407
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.00439a00
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 0x435400
jmp 0x435bbc
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x4354ec
mov ecx, dword [ebp - 0x1c]
and ecx, 4
jne 0x4354ec
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x435463
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x43545e
mov edx, dword [ebp - 0x2cb8]
mov byte [edx], 0x30
mov eax, dword [ebp - 0x2cb8]
add eax, 1
mov dword [ebp - 0x2cb8], eax
jmp 0x435434
jmp 0x4354e5
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.00439a00
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 0x4354de
jmp 0x435bbc
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 0x4356fb
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x43567e
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.0x43553e
mov edx, dword [ebp - 0x2d8c]
jmp dword [edx*4 + 0x435f98]
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 0x43567c
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 0x4356fb
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.0042c0b0
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 0x4356fb
jmp 0x435bbc
mov edx, dword [ebp - 0x1c]
and edx, 0x44
je 0x435ac7
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jle 0x4357da
mov ecx, dword [ebp - 0x2cc0]
sub ecx, dword [ebp - 0x2cb8]
cmp ecx, dword [ebp - 0x2c]
jl 0x435757
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
je 0x435752
mov ecx, dword [ebp - 0x2cb8]
mov byte [ecx], 0x30
mov edx, dword [ebp - 0x2cb8]
add edx, 1
mov dword [ebp - 0x2cb8], edx
jmp 0x435728
jmp 0x4357da
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.00439a00
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 0x4357d3
jmp 0x435bbc
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 0x4359f2
mov edx, dword [ebp - 0x2cc0]
sub edx, dword [ebp - 0x2cb8]
cmp edx, dword [ebp - 0x2c]
jl 0x435975
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.0x435835
mov edx, dword [ebp - 0x2d90]
jmp dword [edx*4 + 0x435fb4]
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 0x435973
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 0x4359f2
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.0042c0b0
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 0x4359f2
jmp 0x435bbc
mov edx, dword [ebp - 0x18]
neg edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jle 0x435ac7
mov eax, dword [ebp - 0x2cc0]
sub eax, dword [ebp - 0x2cb8]
cmp eax, dword [ebp - 0x2c]
jl 0x435a44
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
sub edx, 1
mov dword [ebp - 0x2c], edx
test ecx, ecx
je 0x435a3f
mov eax, dword [ebp - 0x2cb8]
mov byte [eax], 0x20
mov ecx, dword [ebp - 0x2cb8]
add ecx, 1
mov dword [ebp - 0x2cb8], ecx
jmp 0x435a15
jmp 0x435ac7
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.00439a00
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 0x435ac0
jmp 0x435bbc
mov dword [ebp - 0x2c], 0
jmp 0x430cfc
cmp dword [ebp - 0x34], 0
je 0x435ae5
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 0x435bbc
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + 0x1c], 0
je 0x435b49
cmp dword [ebp + 0xc], 0
je 0x435b0e
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
test eax, eax
jne 0x435b27
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 0x435b49
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 0x435b49
jmp 0x430cfc
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 0x435b8d
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 0x435bb7
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x435bb7
jmp 0x430cfc
jmp 0x435ae5
cmp dword [ebp - 0x34], 0
je 0x435bce
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 0x435c14
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + 0x1c], 0
je 0x435bfd
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 0x435bce
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 0x435c82
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 0x435caa
mov ecx, dword [ebp - 0x1c]
and ecx, 0x800
je 0x435cc8
cmp dword [ebp - 0x2c], 0
jle 0x435cf2
mov edx, dword [ebp - 0x2cb8]
lea eax, [ebp - 0x2ca8]
cmp edx, eax
je 0x435cc8
mov ecx, dword [ebp - 0x1c]
and ecx, 0x20
je 0x435cf2
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.0042c0b0
add esp, 0xc
jmp 0x435cff
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 0x435d57
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x14]
and ecx, 0
je 0x435d31
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x2d94], eax
jmp 0x435d3d
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 0x435dd0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 2
jne 0x435da0
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x14]
and edx, 0x20
je 0x435d7a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2d9c], ecx
jmp 0x435d86
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 0x435dc4
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.0044283e
mov esp, ebp
pop ebp
ret