Function at 0x4344d7
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ec
mov dword [ebp - 0xd4], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xe0], 0
mov eax, dword [edx]
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ecx]
add eax, 6
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0xec], 0xfffffffe
mov dword [ebp - 0xe8], 0xfffffffe
mov dword [ebp - 0x84], eax
cmp byte [ecx], 0x5f
jne 0x434570
movzx ebx, byte [ecx + 3]
movzx eax, byte [ecx + 4]
shl ebx, 8
mov esi, dword [ebp + 0x2c]
or ebx, eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x6c]
mov word [ebp - 0x68], bx
mov dword [esi + 0x20], eax
mov edi, dword [ebp - 0xdc]
mov byte [edi + 1], 0
mov eax, dword [ebp - 0x74]
mov byte [eax + 2], 0
mov eax, dword [ebp + 0x1c]
add eax, dword [ebp - 0x74]
add eax, 3
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
cmp dword [ebp + 0x18], 0
je 0x4345b1
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp - 0xf0]
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 0x70]
and eax, 7
cmp eax, dword [ebp - 0xd4]
je 0x4345e1
mov eax, dword [ebp - 0x74]
mov byte [eax], 0x19
mov edx, dword [ebp - 0x74]
lea eax, [edx + 1]
mov dword [ebp - 0x74], eax
mov al, byte [ebp - 0x70]
and eax, 7
mov byte [edx + 1], al
inc dword [ebp - 0x74]
add dword [ebp - 0x84], 2
cmp dword [ebp + 0x14], 0
je 0x434612
mov eax, dword [ebp - 0x74]
mov byte [eax], 0x5c
mov edx, dword [ebp - 0x74]
lea eax, [edx + 1]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0xe0], eax
mov byte [edx + 1], 0
mov eax, dword [ebp - 0x74]
mov byte [eax + 1], 0
add dword [ebp - 0x74], 2
add dword [ebp - 0x84], 3
lea ebx, [ebp - 0x84]
mov dword [ebp - 0xf8], ebx
cmp dword [ebp + 0x30], 0
jne 0x43462e
mov dword [ebp - 0xf8], 0
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x128]
mov edi, dword [ebp - 0x74]
shr eax, 9
mov dword [ebp - 0xac], 0
and eax, 1
mov dword [ebp - 0xb0], 0
shr esi, 0xb
mov dword [ebp - 0x108], eax
and esi, 1
xor eax, 1
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x154], esi
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x118], 0xfffffffe
mov dword [ebp - 0x11c], 0xfffffffe
mov dword [ebp - 0x114], 0xfffffffe
mov dword [ebp - 0x110], 0xfffffffe
mov dword [ebp - 0x120], 0x100
test byte [ebp - 0x128], 1
jne 0x4348e2
jmp 0x4348d8
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x34
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x14
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x34
jmp 0x4382c3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x1f
jmp 0x4382c3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1e
jmp 0x4382c3
mov edx, dword [ebp + 0x10]
mov dword [edx], 7
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 8
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 9
jmp 0x4382c3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x37
jmp 0x4382c3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x3b
jmp 0x4382c3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3c
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1e4]
mov dword [ebp - 0x8c], edx
mov dword [ecx], 0x1c
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x3a
jmp 0x4382c3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x27
jmp 0x4382c3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x26
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x29
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x2a
jmp 0x4382c3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x31
jmp 0x4382c3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x2b
jmp 0x4382c3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3e
jmp 0x4382c3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x2a
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x30
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0xf
jmp 0x4382c3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x1d
jmp 0x4382c3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x3a
jmp 0x4382c3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3a
jmp 0x4382c3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0xf
jmp 0x4382c3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x36
jmp 0x4382c3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x1b
jmp 0x4382c3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0xe
jmp 0x4382c3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x14
jmp 0x4382c3
mov dword [ebp - 0x120], 0
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp + 0x2c]
cmp dword [ebp - 0xf8], 0
movzx esi, byte [eax]
mov eax, dword [edx + 0x10]
je 0x4349b2
add eax, 0x1000
cmp dword [ebp - 0x130], eax
ja 0x43471a
mov ecx, dword [ebp - 0x134]
cmp dword [ebp - 0x130], ecx
jae 0x434923
mov dword [ebp - 0x130], ecx
mov ebx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x130]
mov eax, 0x7fffffeb
sub edx, dword [ebp - 0x134]
mov ecx, dword [ebx]
sub eax, ecx
cmp eax, edx
jl 0x434728
lea eax, [ecx + edx]
mov dword [ebx], eax
cmp dword [ebp - 0x144], 0
je 0x434998
mov edi, dword [ebp - 0x138]
cmp dword [ebp - 0x144], edi
jbe 0x4349a4
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x144]
push eax
push dword [ebp - 0x144]
push edi
call sub.msvcrt.dll_memmove
sub dword [ebp - 0x144], edi
add esp, 0xc
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x144], edi
sub dword [ebp - 0x130], eax
jmp 0x4349a4
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x134], ecx
jmp 0x4349c3
mov ebx, dword [ebp + 0x2c]
add eax, 0x1000
cmp dword [ebx + 0x24], eax
ja 0x434736
cmp dword [ebp - 0x13c], 0
setne dl
xor eax, eax
test esi, esi
setne al
test edx, eax
je 0x434a66
cmp esi, 0x5c
jne 0x4349fd
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x45
jne 0x4349fd
inc eax
mov dword [ebp - 0x13c], 0
jmp 0x437e02
cmp dword [ebp - 0x148], 0
je 0x434a2e
cmp dword [ebp - 0xf8], 0
jne 0x434a24
push dword [ebp + 0x2c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x148]
call fcn.00433d6a
pop edi
mov dword [ebp - 0x148], 0
test dword [ebp - 0x128], 0x4000
je 0x438140
push dword [ebp + 0x2c]
mov edi, dword [ebp - 0x130]
mov edx, dword [ebp - 0x8c]
mov eax, edi
mov dword [ebp - 0x148], edi
call fcn.00433d3d
pop ebx
mov dword [ebp - 0x130], eax
jmp 0x438140
lea eax, [esi - 0x2a]
xor edi, edi
cmp eax, 1
setbe dl
cmp esi, 0x3f
sete al
or eax, edx
test al, 1
jne 0x434add
cmp esi, 0x7b
jne 0x434ae2
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx + 1]
lea ecx, [edx + 2]
test byte [eax + 0x642b40], 4
je 0x434ae2
movzx eax, byte [edx + 2]
test byte [eax + 0x642b40], 4
je 0x434aab
inc ecx
movzx eax, byte [ecx]
jmp 0x434a9c
mov al, byte [ecx]
cmp al, 0x7d
je 0x434add
inc ecx
cmp al, 0x2c
jne 0x434ae2
mov al, byte [ecx]
cmp al, 0x7d
je 0x434add
movzx eax, al
inc ecx
test byte [eax + 0x642b40], 4
je 0x434ae2
movzx eax, byte [ecx]
test byte [eax + 0x642b40], 4
je 0x434ad8
inc ecx
jmp 0x434ac9
cmp byte [ecx], 0x7d
jne 0x434ae2
mov edi, 1
test edi, edi
sete dl
xor eax, eax
cmp dword [ebp - 0x148], 0
setne al
test edx, eax
je 0x434b2f
mov eax, dword [ebp - 0x12c]
dec dword [ebp - 0x12c]
test eax, eax
jg 0x434b2f
cmp dword [ebp - 0xf8], 0
jne 0x434b25
push dword [ebp + 0x2c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x148]
call fcn.00433d6a
pop ecx
mov dword [ebp - 0x148], 0
test byte [ebp - 0x128], 8
je 0x434bdf
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + 0xc]
test byte [esi + eax], 1
jne 0x4382b8
cmp esi, 0x23
jne 0x434bdf
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
cmp byte [edx + 1], 0
je 0x434bdd
mov ecx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x2c]
mov ebx, dword [ecx + 0x58]
mov edx, dword [esi + 0x1c]
test ebx, ebx
mov ecx, dword [ebp - 0x8c]
je 0x434ba1
cmp ecx, edx
jae 0x434b55
push dword [ebp - 0x154]
mov eax, esi
add eax, 0x5c
push eax
push edx
push ebx
push ecx
call fcn.00443050
add esp, 0x14
test eax, eax
jne 0x434bc1
jmp 0x434b55
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + 0x5c]
sub edx, ebx
cmp ecx, edx
ja 0x434b55
mov edx, eax
mov al, byte [eax + 0x60]
cmp byte [ecx], al
jne 0x434b55
dec ebx
je 0x434bc1
mov al, byte [edx + 0x61]
cmp byte [ecx + 1], al
jne 0x434b55
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 0x5c]
add eax, dword [ebp - 0x8c]
dec eax
mov dword [ebp - 0x8c], eax
cmp byte [eax], 0
jne 0x4382b8
xor esi, esi
xor eax, eax
mov edx, dword [ebp - 0x128]
shr edx, 0xe
test edi, edi
sete al
test eax, edx
je 0x434c16
push dword [ebp + 0x2c]
mov ebx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x8c]
mov eax, ebx
mov dword [ebp - 0x148], ebx
call fcn.00433d3d
pop edx
mov dword [ebp - 0x130], eax
cmp esi, 0x3f
je 0x435f7d
jg 0x434c62
cmp esi, 0x29
je 0x434ca2
jg 0x434c45
cmp esi, 0x24
je 0x434d3a
jg 0x434c37
test esi, esi
jmp 0x434c9c
cmp esi, 0x28
je 0x436c55
jmp 0x438140
cmp esi, 0x2b
je 0x435f67
jl 0x435f5b
cmp esi, 0x2e
je 0x434d52
jmp 0x438140
cmp esi, 0x5d
je 0x434daa
jg 0x434c84
cmp esi, 0x5b
je 0x434dc5
cmp esi, 0x5c
je 0x437da7
jmp 0x438140
cmp esi, 0x7b
je 0x435e9b
jg 0x434c99
cmp esi, 0x5e
je 0x434d06
jmp 0x438140
cmp esi, 0x7c
jne 0x438140
mov eax, dword [ebp - 0x130]
mov esi, dword [ebp - 0x110]
mov edi, dword [ebp - 0x114]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0xf8], 0
je 0x4382d6
mov edx, dword [ebp - 0xf8]
mov eax, 0x7fffffeb
mov ecx, dword [edx]
mov edx, dword [ebp - 0x130]
sub edx, dword [ebp - 0x134]
sub eax, ecx
cmp eax, edx
jl 0x43679f
lea eax, [ecx + edx]
mov ecx, dword [ebp - 0xf8]
mov dword [ecx], eax
jmp 0x4382d6
test byte [ebp - 0x128], 2
je 0x434d22
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x434d22
mov dword [ebp - 0x110], 0xffffffff
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x144], 0
mov byte [ebx], 0x1a
jmp 0x4380c6
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0x144], 0
mov byte [esi], 0x1b
jmp 0x4380fc
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x434d65
mov dword [ebp - 0x110], 0xffffffff
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x128]
shr eax, 2
inc dword [ebp - 0x130]
and eax, 1
mov edi, dword [ebp - 0x110]
cmp eax, 1
mov dword [ebp - 0x11c], edi
sbb eax, eax
mov dword [ebp - 0x144], edx
add eax, 0xd
mov byte [edx], al
jmp 0x4382b8
mov ecx, dword [ebp + 0x2c]
test byte [ecx + 0x47], 2
je 0x438140
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x40
jmp 0x4382c3
mov esi, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x144], esi
mov cl, byte [ebx + 1]
cmp cl, 0x3a
sete dl
cmp cl, 0x2e
sete al
or eax, edx
test al, 1
jne 0x434df1
cmp cl, 0x3d
jne 0x434e23
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.00433bbd
test eax, eax
je 0x434e23
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x10]
cmp byte [eax + 1], 0x3a
setne al
movzx eax, al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [edi], eax
jmp 0x4382c3
mov dword [ebp - 0x15c], 0
mov ebx, dword [ebp - 0x8c]
lea eax, [ebx + 1]
mov dword [ebp - 0x8c], eax
movzx esi, byte [ebx + 1]
cmp esi, 0x5c
jne 0x434e72
cmp byte [eax + 1], 0x45
jne 0x434e50
lea eax, [ebx + 2]
jmp 0x434e6a
lea eax, [ebx + 2]
push 3
push 0x6437ec
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x434ee3
lea eax, [ebx + 4]
mov dword [ebp - 0x8c], eax
jmp 0x434e2d
cmp dword [ebp - 0x15c], 0
sete dl
xor eax, eax
cmp esi, 0x5e
sete al
test edx, eax
je 0x434e94
mov dword [ebp - 0x15c], 1
jmp 0x434e2d
cmp esi, 0x5d
jne 0x434ee3
mov eax, dword [ebp + 0x2c]
test byte [eax + 0x47], 2
je 0x434ee3
mov edx, dword [ebp - 0x130]
inc dword [ebp - 0x130]
cmp dword [ebp - 0x15c], 1
sbb eax, eax
and eax, 0x62
add eax, 0xd
mov byte [edx], al
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x434ed2
mov dword [ebp - 0x110], 0xffffffff
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x11c], edx
jmp 0x4382b8
cld
xor eax, eax
lea edi, [ebp - 0x2c]
mov ecx, 8
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x174], 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x130]
mov dword [ebp - 0x150], 0
add edi, 4
test esi, esi
mov dword [ebp - 0x158], edi
je 0x435c81
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x434faa
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x188], edx
movzx esi, byte [edx]
cmp esi, 0xbf
jle 0x434faa
mov eax, esi
mov ebx, 1
and eax, 0x3f
movzx edx, byte [eax + 0x644590]
imul ecx, edx, 6
and esi, dword [edx*4 + 0x6445d0]
mov dword [ebp - 0x1e8], ecx
shl esi, cl
cmp ebx, edx
jg 0x434fa4
sub dword [ebp - 0x1e8], 6
mov ecx, dword [ebp - 0x188]
movzx eax, byte [ebx + ecx]
mov cl, byte [ebp - 0x1e8]
and eax, 0x3f
shl eax, cl
or esi, eax
inc ebx
jmp 0x434f7f
add dword [ebp - 0x8c], edx
cmp dword [ebp - 0xf8], 0
je 0x434fc7
sub edi, dword [ebp - 0x158]
mov ebx, dword [ebp - 0xf8]
add dword [ebx], edi
mov edi, dword [ebp - 0x158]
cmp dword [ebp - 0x13c], 0
je 0x435000
cmp esi, 0x5c
jne 0x4356ee
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x45
jne 0x4356ee
inc eax
mov dword [ebp - 0x13c], 0
jmp 0x43526c
mov edx, ebx
jmp 0x43510e
cmp esi, 0x5b
jne 0x4351ef
mov ebx, dword [ebp - 0x8c]
mov cl, byte [ebx + 1]
cmp cl, 0x3a
sete dl
cmp cl, 0x2e
sete al
or eax, edx
test al, 1
jne 0x43502d
cmp cl, 0x3d
jne 0x4356ee
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.00433bbd
test eax, eax
je 0x4356ee
mov esi, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x18c], 0
mov esi, dword [esi + 8]
mov dword [ebp - 0x190], esi
cmp byte [edx + 1], 0x3a
jne 0x434744
lea eax, [edx + 2]
mov dword [ebp - 0x8c], eax
cmp byte [edx + 2], 0x5e
jne 0x435094
lea eax, [edx + 3]
mov dword [ebp - 0x18c], 1
mov dword [ebp - 0x160], 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x88]
sub esi, eax
xor ebx, ebx
cmp byte [0x642d68], 0
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x198], 0x642d80
je 0x43510b
movzx edx, byte [ebx + 0x642d68]
mov dword [ebp - 0x19c], edx
cmp esi, edx
jne 0x4350eb
push esi
push dword [ebp - 0x198]
push dword [ebp - 0x194]
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x434ff9
inc ebx
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x19c]
cmp byte [ebx + 0x642d68], 0
lea ecx, [ecx + eax + 1]
mov dword [ebp - 0x198], ecx
jmp 0x4350bb
or edx, 0xffffffff
test edx, edx
js 0x434752
xor eax, eax
cmp edx, 2
setle al
xor ebx, ebx
test dword [ebp - 0x128], eax
sete bl
neg ebx
and ebx, edx
mov eax, dword [ebp - 0x190]
imul ebx, ebx, 3
lea edx, [ebp - 0x5c]
push 0x20
add eax, dword [ebx*4 + 0x642cc0]
push eax
push edx
call fcn.00577220
mov eax, dword [ebx*4 + 0x642cc4]
add esp, 0xc
mov ecx, dword [ebx*4 + 0x642cc8]
test eax, eax
js 0x435194
test ecx, ecx
js 0x43517b
mov edx, dword [ebp - 0x190]
xor esi, esi
add edx, eax
mov al, byte [edx]
inc edx
or byte [esi + ebp - 0x5c], al
inc esi
cmp esi, 0x1f
jle 0x43516c
jmp 0x435194
mov edx, dword [ebp - 0x190]
xor esi, esi
add edx, eax
mov al, byte [edx]
inc edx
not eax
and byte [esi + ebp - 0x5c], al
inc esi
cmp esi, 0x1f
jle 0x435185
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
cmp ecx, 1
jne 0x4351a8
and byte [ebp - 0x5b], 0xc3
jmp 0x4351b1
cmp ecx, 2
jne 0x4351b1
and byte [ebp - 0x51], 0x7f
xor esi, esi
cmp dword [ebp - 0x18c], 0
je 0x4351ce
mov al, byte [esi + ebp - 0x5c]
not eax
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x4351bc
jmp 0x4351dc
mov al, byte [esi + ebp - 0x5c]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x4351ce
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x170], 0xa
inc eax
jmp 0x43526c
cmp esi, 0x5c
jne 0x4356ee
push 1
mov ebx, dword [ebp + 0x2c]
push dword [ebp - 0x128]
push dword [ebx + 0x34]
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x8c]
call fcn.00432d00
add esp, 0xc
mov esi, eax
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
jne 0x4382c3
cmp esi, 0xfffffffb
jne 0x435234
mov esi, 8
jmp 0x4356ee
cmp esi, 0xffffffea
jne 0x435243
mov esi, 0x58
jmp 0x4356ee
cmp esi, 0xffffffef
jne 0x435252
mov esi, 0x52
jmp 0x4356ee
cmp esi, 0xffffffe6
jne 0x435286
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x5c
jne 0x435277
cmp byte [eax + 2], 0x45
jne 0x435277
add eax, 2
mov dword [ebp - 0x8c], eax
jmp 0x435c4e
mov dword [ebp - 0x13c], 1
jmp 0x435c4e
cmp esi, 0xffffffe7
je 0x435c4e
test esi, esi
jns 0x4356ee
mov ecx, dword [ebp + 0x2c]
add dword [ebp - 0x170], 2
mov edx, dword [ecx + 8]
cmp dword [ebp - 0xf8], 0
jne 0x435376
mov eax, esi
neg eax
sub eax, 6
cmp eax, 5
ja case.default.0x4352c1
jmp dword [eax*4 + 0x643a50]
xor esi, esi
mov al, byte [edx + esi + 0x40]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x4352ca
jmp 0x435c4e
mov dword [ebp - 0x160], 1
xor esi, esi
mov al, byte [edx + esi + 0x40]
not eax
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x4352e9
jmp 0x435c4e
xor esi, esi
mov al, byte [edx + esi + 0xa0]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x435300
jmp 0x435c4e
mov dword [ebp - 0x160], 1
xor esi, esi
mov al, byte [edx + esi + 0xa0]
not eax
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x435322
jmp 0x435c4e
xor esi, esi
mov al, byte [esi + edx]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x43533c
and byte [ebp - 0x2b], 0xf7
jmp 0x435c4e
mov dword [ebp - 0x160], 1
xor esi, esi
mov al, byte [esi + edx]
not eax
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x43535e
or byte [ebp - 0x2b], 8
jmp 0x435c4e
lea eax, [esi + 7]
cmp eax, 1
setbe dl
cmp esi, 0xfffffff5
sete al
or eax, edx
test al, 1
jne 0x435c4e
cmp esi, 0xfffffff6
sete dl
cmp esi, 0xfffffff7
sete al
or eax, edx
test al, 1
jne 0x435c4e
cmp esi, 0xfffffff8
je 0x435c4e
cmp esi, 0xffffffed
jne 0x435457
or byte [ebp - 0x2b], 2
or byte [ebp - 0x28], 1
or byte [ebp - 0x18], 1
cmp dword [ebp - 0x154], 0
je 0x435c4e
mov dword [ebp - 0x150], 1
mov byte [edi], 1
inc edi
push edi
push 0x1680
call fcn.00443000
pop ecx
add edi, eax
pop ebx
mov byte [edi], 1
inc edi
push edi
push 0x180e
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2000
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x200a
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 1
inc edi
push edi
push 0x202f
call fcn.00443000
pop ecx
add edi, eax
pop ebx
mov byte [edi], 1
inc edi
push edi
push 0x205f
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 1
inc edi
push edi
push 0x3000
jmp 0x435be0
cmp esi, 0xffffffee
jne 0x435584
xor esi, esi
mov eax, 0xff
cmp esi, 4
je 0x435483
jg 0x435475
cmp esi, 1
je 0x43547c
jmp 0x435488
cmp esi, 0x14
je 0x435483
jmp 0x435488
mov eax, 0xfd
jmp 0x435488
mov eax, 0xfe
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x435462
cmp dword [ebp - 0x154], 0
je 0x435c4e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x100
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x167f
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x1681
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x180d
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x180f
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x1fff
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x200b
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x202e
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2030
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x205e
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2060
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x2fff
call fcn.00443000
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x3001
jmp 0x43563b
cmp esi, 0xffffffeb
jne 0x4355c6
or byte [ebp - 0x2b], 0x3c
or byte [ebp - 0x1c], 0x20
cmp dword [ebp - 0x154], 0
je 0x435c4e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x2028
call fcn.00443000
pop ecx
add edi, eax
pop ebx
push edi
push 0x2029
jmp 0x435be0
cmp esi, 0xffffffec
jne 0x43564f
xor esi, esi
mov eax, 0xff
cmp esi, 1
je 0x4355e2
cmp esi, 0x10
je 0x4355e9
jmp 0x4355ee
mov eax, 0xc3
jmp 0x4355ee
mov eax, 0xdf
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x4355d1
cmp dword [ebp - 0x154], 0
je 0x435c4e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x100
call fcn.00443000
pop esi
add edi, eax
pop edx
push edi
push 0x2027
call fcn.00443000
pop ecx
add edi, eax
pop ebx
mov byte [edi], 2
inc edi
push edi
push 0x2029
call fcn.00443000
pop esi
add edi, eax
pop edx
push edi
push 0x7fffffff
jmp 0x435be0
lea eax, [esi + 0x10]
cmp eax, 1
ja 0x4356d1
push dword [ebp + 0x10]
lea eax, [ebp - 0x90]
lea edx, [ebp - 0x94]
push eax
lea eax, [ebp - 0x8c]
call fcn.00433139
pop ecx
test eax, eax
pop ebx
js 0x4382c3
mov dword [ebp - 0x1ec], edi
mov ebx, dword [ebp - 0x170]
inc edi
mov dword [ebp - 0x150], 1
cmp esi, 0xfffffff0
mov edx, dword [ebp - 0x94]
lea ecx, [edi + 1]
lea esi, [ebx - 2]
jne 0x4356a7
dec edx
jmp 0x4356a9
test edx, edx
je 0x4356af
mov dl, 3
jmp 0x4356b1
mov dl, 4
mov ebx, dword [ebp - 0x1ec]
mov byte [ebx], dl
mov byte [edi], al
mov edi, ecx
mov eax, dword [ebp - 0x90]
inc edi
mov byte [ecx], al
mov dword [ebp - 0x170], esi
jmp 0x435c4e
test byte [ebp - 0x128], 0x40
jne 0x434760
sub dword [ebp - 0x170], 2
mov eax, dword [ebp - 0x8c]
movzx esi, byte [eax]
mov edx, dword [ebp - 0x8c]
cmp byte [edx + 1], 0x5c
jne 0x435721
cmp byte [edx + 2], 0x45
jne 0x435721
lea eax, [edx + 2]
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x8c], eax
mov edx, eax
cmp byte [eax + 1], 0x5c
jne 0x435721
cmp byte [eax + 2], 0x45
jmp 0x4356fe
mov eax, dword [ebp - 0x8c]
cmp esi, 0xd
mov dword [ebp - 0x184], eax
sete dl
cmp esi, 0xa
sete al
or eax, edx
test al, 1
je 0x435746
mov edx, dword [ebp + 0x2c]
or dword [edx + 0x48], 0x20
cmp dword [ebp - 0x13c], 0
jne 0x435b65
mov ecx, dword [ebp - 0x184]
cmp byte [ecx + 1], 0x2d
jne 0x435b65
mov eax, ecx
add eax, 2
mov dword [ebp - 0x8c], eax
cmp byte [ecx + 2], 0x5c
jne 0x435792
cmp byte [eax + 1], 0x45
jne 0x435792
add eax, 2
mov dword [ebp - 0x8c], eax
add eax, 2
cmp byte [eax - 2], 0x5c
jne 0x435792
cmp byte [eax - 1], 0x45
je 0x43577d
mov edx, dword [ebp - 0x8c]
cmp byte [edx], 0x5c
jne 0x4357db
cmp byte [edx + 1], 0x51
jne 0x4357db
lea ecx, [edx + 2]
mov dword [ebp - 0x8c], ecx
cmp byte [edx + 2], 0x5c
jne 0x4357b8
cmp byte [ecx + 1], 0x45
je 0x4357c4
mov dword [ebp - 0x13c], 1
jmp 0x4357db
lea eax, [edx + 4]
mov dword [ebp - 0x8c], eax
mov edx, eax
cmp byte [ecx + 2], 0x5c
jne 0x4357db
cmp byte [eax + 1], 0x51
jmp 0x4357a1
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x1a0], ebx
mov al, byte [ebx]
test al, al
je 0x4357fa
cmp dword [ebp - 0x13c], 0
jne 0x43580b
cmp al, 0x5d
jne 0x43580b
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x8c], eax
jmp 0x435b65
cmp dword [ebp - 0x154], 0
je 0x435889
mov edx, dword [ebp - 0x1a0]
movzx ebx, byte [edx]
cmp ebx, 0xbf
jle 0x435892
mov eax, ebx
mov dword [ebp - 0x1a4], 1
and eax, 0x3f
movzx edx, byte [eax + 0x644590]
imul ecx, edx, 6
and ebx, dword [edx*4 + 0x6445d0]
mov dword [ebp - 0x1e8], ecx
shl ebx, cl
cmp dword [ebp - 0x1a4], edx
jg 0x435881
sub dword [ebp - 0x1e8], 6
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1a0]
movzx eax, byte [eax + ecx]
mov cl, byte [ebp - 0x1e8]
and eax, 0x3f
inc dword [ebp - 0x1a4]
shl eax, cl
or ebx, eax
jmp 0x43584d
add dword [ebp - 0x8c], edx
jmp 0x435892
mov eax, dword [ebp - 0x1a0]
movzx ebx, byte [eax]
cmp dword [ebp - 0x13c], 0
sete dl
xor eax, eax
cmp ebx, 0x5c
sete al
test edx, eax
je 0x43590e
push 1
mov edx, dword [ebp + 0x2c]
push dword [ebp - 0x128]
push dword [edx + 0x34]
lea eax, [ebp - 0x8c]
mov edx, dword [ebp + 0x10]
call fcn.00432d00
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov ebx, eax
cmp dword [ecx], 0
jne 0x4382c3
test eax, eax
jns 0x43590e
cmp eax, 0xfffffffb
jne 0x4358e5
mov ebx, 8
jmp 0x43590e
cmp eax, 0xffffffea
jne 0x4358f1
mov ebx, 0x58
jmp 0x43590e
cmp eax, 0xffffffef
jne 0x4358fd
mov ebx, 0x52
jmp 0x43590e
mov ebx, dword [ebp - 0x184]
mov dword [ebp - 0x8c], ebx
jmp 0x435b65
cmp ebx, esi
jl 0x43476e
je 0x435b65
cmp ebx, 0xd
sete dl
cmp ebx, 0xa
sete al
or eax, edx
test al, 1
je 0x435935
mov eax, dword [ebp + 0x2c]
or dword [eax + 0x48], 0x20
cmp dword [ebp - 0x154], 0
je 0x435abf
cmp ebx, 0xff
jg 0x43595e
xor eax, eax
cmp ebx, 0x7f
setg al
test dword [ebp - 0x128], eax
je 0x435abf
mov dword [ebp - 0x150], 1
test byte [ebp - 0x128], 1
je 0x435aa9
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x1a8], ebx
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebp - 0x1a8]
ja 0x435aa9
mov eax, ecx
mov edx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x64e4b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x6446b0]
mov edx, dword [eax*8 + 0x6506b4]
lea eax, [ecx + edx]
cmp eax, ecx
jne 0x4359c2
inc ecx
jmp 0x435987
cmp ecx, dword [ebp - 0x1a8]
ja 0x435aa9
mov dword [ebp - 0x9c], eax
inc eax
mov dword [ebp - 0x1ac], eax
inc ecx
cmp ecx, dword [ebp - 0x1a8]
ja 0x435a1c
mov eax, ecx
mov edx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x64e4b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x6446b0]
mov edx, dword [eax*8 + 0x6506b4]
lea eax, [ecx + edx]
cmp eax, dword [ebp - 0x1ac]
jne 0x435a1c
inc dword [ebp - 0x1ac]
jmp 0x4359db
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x98], ecx
dec eax
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0xa0], eax
cmp ecx, esi
jb 0x435a43
cmp eax, ebx
jbe 0x435981
jmp 0x435a55
lea eax, [esi - 1]
cmp dword [ebp - 0xa0], eax
jb 0x435a55
mov esi, ecx
jmp 0x435981
mov edx, dword [ebp - 0xa0]
cmp edx, ebx
jbe 0x435a6d
lea eax, [ebx + 1]
cmp ecx, eax
ja 0x435a6d
mov ebx, edx
jmp 0x435981
cmp dword [ebp - 0x9c], edx
lea ecx, [edi + 1]
jne 0x435a7f
mov byte [edi], 1
mov edi, ecx
jmp 0x435a94
mov byte [edi], 2
push ecx
push dword [ebp - 0x9c]
mov edi, ecx
call fcn.00443000
pop ecx
add edi, eax
pop edx
push edi
push dword [ebp - 0xa0]
call fcn.00443000
pop ecx
add edi, eax
pop edx
jmp 0x435981
mov byte [edi], 2
inc edi
push edi
push esi
call fcn.00443000
pop esi
add edi, eax
pop edx
push edi
push ebx
jmp 0x435be0
mov eax, ebx
mov ecx, dword [ebp - 0x170]
sub eax, esi
mov dword [ebp - 0x174], ebx
cmp dword [ebp - 0xf8], 0
lea ecx, [ecx + eax + 1]
mov dword [ebp - 0x170], ecx
jne 0x435c4e
cmp esi, ebx
jg 0x435c4e
mov eax, esi
mov ecx, 8
cdq
idiv ecx
mov dword [ebp - 0x1f0], eax
mov ecx, esi
and ecx, 7
mov eax, 1
mov edx, dword [ebp - 0x1f0]
mov dword [ebp - 0x1b0], 1
shl eax, cl
or byte [edx + ebp - 0x2c], al
test byte [ebp - 0x128], 1
je 0x435b62
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 4]
mov ecx, 8
movzx eax, byte [esi + eax]
mov dword [ebp - 0x1e8], eax
and dword [ebp - 0x1e8], 7
cdq
idiv ecx
mov cl, byte [ebp - 0x1e8]
mov dword [ebp - 0x1f0], eax
shl dword [ebp - 0x1b0], cl
mov dl, byte [ebp - 0x1b0]
or byte [eax + ebp - 0x2c], dl
inc esi
jmp 0x435ae6
cmp dword [ebp - 0x154], 0
je 0x435beb
cmp esi, 0xff
jg 0x435b86
xor eax, eax
cmp esi, 0x7f
setg al
test dword [ebp - 0x128], eax
je 0x435beb
mov dword [ebp - 0x150], 1
mov byte [edi], 1
inc edi
push edi
push esi
call fcn.00443000
pop edx
add edi, eax
pop ecx
test byte [ebp - 0x128], 1
je 0x435c4e
mov edx, pe_nt_image_headers32
mov eax, esi
mov ebx, edx
cdq
idiv ebx
movzx eax, byte [eax + 0x64e4b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x6446b0]
mov edx, dword [eax*8 + 0x6506b4]
lea eax, [esi + edx]
cmp eax, esi
je 0x435c4e
mov byte [edi], 1
inc edi
push edi
push eax
call fcn.00443000
pop ecx
add edi, eax
pop ebx
jmp 0x435c4e
mov eax, esi
mov ebx, 8
cdq
mov ecx, esi
mov dword [ebp - 0x1b4], 1
idiv ebx
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [ebp - 0x1f0], eax
or byte [eax + ebp - 0x2c], dl
test byte [ebp - 0x128], 1
je 0x435c42
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 4]
movzx esi, byte [esi + eax]
mov ecx, esi
mov eax, esi
and ecx, 7
shl dword [ebp - 0x1b4], cl
cdq
idiv ebx
mov dl, byte [ebp - 0x1b4]
or byte [eax + ebp - 0x2c], dl
inc dword [ebp - 0x170]
mov dword [ebp - 0x174], esi
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
movzx esi, byte [edx + 1]
test esi, esi
je 0x435c81
cmp esi, 0x5d
setne dl
cmp dword [ebp - 0x13c], 0
setne al
or eax, edx
test al, 1
jne 0x434f2f
jmp 0x435c8f
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 6
jmp 0x4382c3
cmp dword [ebp - 0x170], 1
sete dl
xor eax, eax
cmp dword [ebp - 0x150], 0
sete al
test edx, eax
je 0x435d63
cmp dword [ebp - 0x154], 0
sete dl
cmp dword [ebp - 0x15c], 0
sete al
or eax, edx
test al, 1
jne 0x435cd4
cmp dword [ebp - 0x174], 0x7f
jg 0x435d63
mov ebx, dword [ebp - 0x114]
mov dword [ebp - 0x118], ebx
cmp dword [ebp - 0x15c], 0
je 0x435d26
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x435cfc
mov dword [ebp - 0x110], 0xffffffff
mov edi, dword [ebp - 0x130]
mov esi, dword [ebp - 0x110]
mov dword [ebp - 0x11c], esi
mov byte [edi], 0x1e
inc edi
mov al, byte [ebp - 0x174]
mov byte [edi], al
inc edi
mov dword [ebp - 0x130], edi
jmp 0x4382b8
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp dword [ebp - 0x174], 0x7f
setg al
test edx, eax
je 0x435d52
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x174]
jmp 0x438126
mov dl, byte [ebp - 0x174]
mov byte [ebp - 0xa8], dl
jmp 0x438139
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x435d76
mov dword [ebp - 0x110], 0xffffffff
cmp dword [ebp - 0x150], 0
mov esi, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x114]
setne dl
xor eax, eax
mov ecx, dword [ebp - 0x110]
cmp dword [ebp - 0x160], 0
sete al
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x11c], ecx
test edx, eax
lea ebx, [esi + 1]
je 0x435e3a
mov byte [edi], 0
add ebx, 2
mov byte [esi], 0x50
inc edi
cmp dword [ebp - 0x15c], 0
setne al
mov dword [ebp - 0x130], ebx
mov byte [ebx], al
cmp dword [ebp - 0x170], 0
jle 0x435e08
mov edx, ebx
or eax, 2
inc ebx
mov byte [edx], al
mov eax, edi
sub eax, ebx
add edi, 0x20
push eax
mov eax, ebx
add eax, 0x20
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
lea eax, [ebp - 0x2c]
push 0x20
push eax
push ebx
call fcn.00577220
add esp, 0xc
mov dword [ebp - 0x130], edi
mov edi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x144]
sar eax, 8
mov byte [edi + 1], al
mov al, byte [ebp - 0x130]
sub al, byte [ebp - 0x144]
mov byte [edi + 2], al
jmp 0x4382b8
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x130]
cmp dword [ebp - 0x15c], eax
mov dword [ebp - 0x130], ebx
setne al
add eax, 0x4e
mov byte [edx], al
cmp dword [ebp - 0x15c], 0
je 0x435e7f
cmp dword [ebp - 0xf8], 0
jne 0x435e93
xor esi, esi
mov al, byte [esi + ebp - 0x2c]
not eax
mov byte [esi + ebx], al
inc esi
cmp esi, 0x1f
jle 0x435e6e
jmp 0x435e93
lea eax, [ebp - 0x2c]
push 0x20
push eax
push dword [ebp - 0x130]
call fcn.00577220
add esp, 0xc
add ebx, 0x20
jmp 0x4380c7
test edi, edi
je 0x438140
mov eax, dword [ebp - 0x8c]
xor esi, esi
or ebx, 0xffffffff
lea ecx, [eax + 1]
movzx eax, byte [eax + 1]
test byte [eax + 0x642b40], 4
je 0x435ee8
imul eax, esi, 0xa
movzx edx, byte [ecx]
inc ecx
lea esi, [eax + edx - 0x30]
movzx eax, byte [ecx]
test byte [eax + 0x642b40], 4
jne 0x435ebe
cmp esi, 0xffff
jbe 0x435ee8
mov edx, dword [ebp + 0x10]
mov dword [edx], 5
jmp 0x435f48
cmp byte [ecx], 0x7d
jne 0x435ef1
mov ebx, esi
jmp 0x435f3c
inc ecx
mov al, byte [ecx]
cmp al, 0x7d
je 0x435f3c
movzx edx, al
xor ebx, ebx
test byte [edx + 0x642b40], 4
je 0x435f2d
imul eax, ebx, 0xa
inc ecx
lea ebx, [eax + edx - 0x30]
movzx edx, byte [ecx]
test byte [edx + 0x642b40], 4
jne 0x435f06
cmp ebx, 0xffff
jbe 0x435f2d
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 5
jmp 0x435f48
cmp ebx, esi
jge 0x435f3c
mov esi, dword [ebp + 0x10]
mov dword [esi], 4
jmp 0x435f48
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x8c], ecx
cmp dword [edi], 0
je 0x435f91
jmp 0x4382c3
mov dword [ebp - 0xac], 0
jmp 0x435f71
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xb0], 0xffffffff
jmp 0x435f91
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb0], 1
cmp dword [ebp - 0x144], 0
je 0x43477c
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x435fc0
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x114], edx
xor eax, eax
mov edi, dword [ebp - 0xb0]
cmp ebx, edi
mov ecx, dword [ebp - 0x144]
sete al
dec eax
mov dword [ebp - 0x100], 0
and eax, 0x200
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xc8], ecx
mov dl, byte [eax + 1]
cmp dl, 0x2b
jne 0x43601d
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x164], 1
jmp 0x43603a
mov esi, dword [ebp - 0x108]
cmp dl, 0x3f
mov dword [ebp - 0xfc], esi
jne 0x436041
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
inc eax
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x144]
mov dl, byte [ecx]
lea eax, [edx - 0x1c]
cmp al, 1
ja 0x436103
cmp dword [ebp - 0x154], 0
je 0x43609b
mov esi, dword [ebp - 0x130]
mov al, byte [esi - 1]
test al, al
jns 0x43609b
mov edx, esi
dec edx
and eax, 0xc0
add eax, 0xffffff80
jne 0x43607d
dec edx
movzx eax, byte [edx]
jmp 0x43606d
mov esi, dword [ebp - 0x130]
lea eax, [ebp - 0x3c]
sub esi, edx
push esi
push edx
push eax
call fcn.00577220
or esi, 0x80
add esp, 0xc
jmp 0x4360be
mov edi, dword [ebp - 0x130]
dec ebx
movzx esi, byte [edi - 1]
jle 0x4360be
mov edx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x120]
or eax, esi
mov edx, dword [edx + 0x4c]
or eax, edx
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x164], 0
jne 0x4361b3
cmp dword [ebp - 0xb0], 0
jns 0x4361b3
mov ecx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x8c]
inc edx
movzx eax, byte [ecx]
push dword [ebp + 0x2c]
push dword [ebp - 0x128]
push edx
lea edx, [ebp - 0x3c]
push edx
mov edx, esi
push dword [ebp - 0x154]
jmp 0x436193
cmp dl, 0x1e
jne 0x436153
mov ebx, dword [ebp - 0x144]
mov dword [ebp - 0x100], 0xd
cmp dword [ebp - 0x164], 0
movzx esi, byte [ebx + 1]
jne 0x4361b3
test edi, edi
jns 0x4361b3
push dword [ebp + 0x2c]
push dword [ebp - 0x128]
mov eax, dword [ebp - 0x8c]
mov edx, esi
inc eax
push eax
push 0
push dword [ebp - 0x154]
mov eax, 0x1e
jmp 0x436193
cmp dl, 0x16
ja 0x4364d2
mov dword [ebp - 0x100], 0x1a
movzx esi, dl
cmp dword [ebp - 0x164], 0
jne 0x4361b3
test edi, edi
jns 0x4361b3
push dword [ebp + 0x2c]
push dword [ebp - 0x128]
mov eax, dword [ebp - 0x8c]
xor edx, edx
inc eax
push eax
push 0
push dword [ebp - 0x154]
mov eax, esi
call fcn.00433d91
add esp, 0x14
test eax, eax
je 0x4361b3
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x164], 1
mov edi, dword [ebp - 0x144]
mov al, byte [edi]
or edi, 0xffffffff
sub eax, 0xf
mov dword [ebp - 0x1b8], 0xffffffff
cmp al, 1
ja 0x4361e3
mov eax, dword [ebp - 0x144]
movzx edx, byte [eax + 2]
movzx edi, byte [eax + 1]
mov dword [ebp - 0x1b8], edx
mov ebx, dword [ebp - 0x144]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x130]
test eax, eax
mov dword [ebp - 0x130], ebx
je 0x436c3a
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0xac]
test edx, edx
jne 0x436276
cmp eax, 0xffffffff
jne 0x436229
mov al, byte [ebp - 0xfc]
add eax, 0x1f
jmp 0x43628d
mov ecx, dword [ebp - 0x130]
dec eax
lea ebx, [ecx + 1]
jne 0x436245
mov al, byte [ebp - 0xfc]
add eax, 0x23
mov byte [ecx], al
jmp 0x436465
mov al, byte [ebp - 0xfc]
mov edx, dword [ebp - 0x130]
add eax, 0x25
mov byte [edx], al
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x144]
sar eax, 8
mov byte [ecx + 1], al
add ecx, 3
mov eax, dword [ebp - 0xb0]
mov byte [ebx + 1], al
jmp 0x4362c7
dec edx
jne 0x4362d2
cmp eax, 0xffffffff
jne 0x436295
mov al, byte [ebp - 0xfc]
mov ebx, dword [ebp - 0x130]
add eax, 0x21
mov byte [ebx], al
inc ebx
jmp 0x436465
mov dword [ebp - 0x130], ecx
dec eax
je 0x436c3a
mov al, byte [ebp - 0xfc]
add eax, 0x25
mov byte [ecx], al
inc ecx
mov eax, dword [ebp - 0xb0]
dec eax
sar eax, 8
mov byte [ecx], al
mov al, byte [ebp - 0xb0]
dec eax
mov byte [ecx + 1], al
add ecx, 2
mov dword [ebp - 0x130], ecx
jmp 0x43646b
mov al, byte [ebp - 0x100]
mov edx, dword [ebp - 0x130]
add eax, 0x27
mov byte [edx], al
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x144]
sar eax, 8
mov byte [ecx + 1], al
add ecx, 3
mov eax, dword [ebp - 0xac]
mov byte [edx + 2], al
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0xb0]
test eax, eax
jns 0x436398
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x436346
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push ecx
call fcn.00577220
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x43637b
mov eax, dword [ebp - 0x144]
mov ebx, esi
mov byte [eax + 3], bl
add eax, 4
mov dword [ebp - 0x130], eax
test edi, edi
js 0x43637b
mov ecx, dword [ebp - 0x144]
mov edx, edi
mov byte [ecx + 4], dl
mov bl, byte [ebp - 0x1b8]
mov byte [ecx + 5], bl
add ecx, 6
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x130]
mov al, byte [ebp - 0xfc]
add eax, 0x1f
mov byte [edx], al
inc edx
mov dword [ebp - 0x130], edx
jmp 0x43646b
cmp eax, dword [ebp - 0xac]
je 0x43646b
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x4363da
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push dword [ebp - 0x130]
call fcn.00577220
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x4363ee
mov ebx, dword [ebp - 0x144]
mov ecx, esi
mov byte [ebx + 3], cl
add ebx, 4
mov dword [ebp - 0x130], ebx
test edi, edi
js 0x43640c
mov edx, dword [ebp - 0x130]
mov eax, edi
mov byte [edx], al
inc edx
mov cl, byte [ebp - 0x1b8]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0xb0]
sub eax, dword [ebp - 0xac]
mov dword [ebp - 0xb0], eax
dec eax
mov eax, dword [ebp - 0x130]
lea ebx, [eax + 1]
jne 0x43643d
mov al, byte [ebp - 0xfc]
mov edx, dword [ebp - 0x130]
add eax, 0x23
mov byte [edx], al
jmp 0x436465
mov al, byte [ebp - 0xfc]
mov ecx, dword [ebp - 0x130]
add eax, 0x25
mov byte [ecx], al
mov eax, dword [ebp - 0xb0]
sar eax, 8
mov byte [ebx], al
mov eax, dword [ebp - 0xb0]
mov byte [ebx + 1], al
add ebx, 2
mov dword [ebp - 0x130], ebx
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x4364a1
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push dword [ebp - 0x130]
call fcn.00577220
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x4364b2
mov eax, dword [ebp - 0x130]
mov ebx, esi
mov byte [eax], bl
inc eax
mov dword [ebp - 0x130], eax
test edi, edi
js 0x436aec
mov ecx, dword [ebp - 0x130]
mov edx, edi
mov byte [ecx], dl
inc ecx
mov bl, byte [ebp - 0x1b8]
mov byte [ecx], bl
jmp 0x436559
lea eax, [edx - 0x4e]
cmp al, 3
ja 0x4365cf
test edi, edi
jne 0x4364f2
mov esi, dword [ebp - 0x144]
mov dword [ebp - 0x130], esi
jmp 0x436c3a
test ebx, ebx
jne 0x436516
inc edi
jne 0x43653f
mov edi, dword [ebp - 0x130]
mov al, byte [ebp - 0xfc]
add eax, 0x46
mov byte [edi], al
inc edi
mov dword [ebp - 0x130], edi
jmp 0x436aec
cmp ebx, 1
jne 0x43653b
inc edi
jne 0x436565
mov edx, dword [ebp - 0x130]
mov al, byte [ebp - 0xfc]
add eax, 0x48
mov byte [edx], al
inc edx
mov dword [ebp - 0x130], edx
jmp 0x436aec
test ebx, ebx
jne 0x436565
cmp dword [ebp - 0xb0], 1
jne 0x436565
mov al, byte [ebp - 0xfc]
mov ecx, dword [ebp - 0x130]
add eax, 0x4a
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x130], ecx
jmp 0x436aec
mov ebx, dword [ebp - 0x130]
mov al, byte [ebp - 0xfc]
add eax, 0x4c
mov byte [ebx], al
inc ebx
mov eax, dword [ebp - 0xac]
sar eax, 8
mov byte [ebx], al
mov eax, dword [ebp - 0xac]
mov byte [ebx + 1], al
add ebx, 2
mov dword [ebp - 0x130], ebx
cmp dword [ebp - 0xb0], 0xffffffff
jne 0x4365a7
mov dword [ebp - 0xb0], 0
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp - 0xb0]
sar eax, 8
mov byte [esi], al
mov eax, dword [ebp - 0xb0]
mov byte [esi + 1], al
add esi, 2
mov dword [ebp - 0x130], esi
jmp 0x436aec
lea eax, [edx - 0x5d]
cmp al, 3
ja 0x436ad5
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x1bc], 0
sub eax, dword [ebp - 0x144]
mov dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c0], eax
cmp dl, 0x60
jne 0x436615
mov edx, dword [ebp - 0x144]
cmp byte [edx + 3], 0x68
je 0x43478a
cmp edi, 0xffffffff
jne 0x436642
mov ecx, dword [ebp - 0x144]
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
or eax, edx
add ecx, eax
cmp byte [ecx], 0x55
jne 0x436620
mov esi, dword [ebp - 0x130]
sub esi, ecx
mov dword [ebp - 0x1bc], esi
test ebx, ebx
jne 0x436752
dec edi
mov edi, dword [ebp - 0x144]
lea ebx, [edi + 1]
jg 0x4366c0
mov eax, dword [ebp - 0x130]
mov edx, 1
mov byte [eax], 0
mov eax, edi
push dword [ebp - 0x14c]
push dword [ebp + 0x2c]
push dword [ebp - 0x154]
call fcn.00433bfd
add esp, 0xc
push dword [ebp - 0x1c0]
push edi
push ebx
call sub.msvcrt.dll_memmove
add esp, 0xc
inc dword [ebp - 0x130]
cmp dword [ebp - 0xb0], 0
jne 0x4366a4
mov byte [edi], 0x72
jmp 0x436c3a
mov al, byte [ebp - 0xfc]
mov edx, dword [ebp - 0x144]
add eax, 0x69
mov byte [edx], al
mov dword [ebp - 0x144], ebx
jmp 0x436747
mov ecx, dword [ebp - 0x130]
mov edx, 4
mov byte [ecx], 0
push dword [ebp - 0x14c]
push dword [ebp + 0x2c]
push dword [ebp - 0x154]
mov eax, dword [ebp - 0x144]
call fcn.00433bfd
add esp, 0xc
push dword [ebp - 0x1c0]
push dword [ebp - 0x144]
mov eax, dword [ebp - 0x144]
add eax, 4
push eax
call sub.msvcrt.dll_memmove
mov esi, dword [ebp - 0x144]
mov al, byte [ebp - 0xfc]
add eax, 0x69
add esp, 0xc
add dword [ebp - 0x130], 4
mov byte [esi], al
mov byte [ebx], 0x5e
inc ebx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x1c4], ebx
mov byte [ebx], 0
mov edi, dword [ebp - 0x144]
mov byte [edi + 1], 0
add edi, 2
mov dword [ebp - 0x144], edi
dec dword [ebp - 0xb0]
jmp 0x436889
cmp ebx, 1
jle 0x436873
cmp dword [ebp - 0xf8], 0
je 0x4367bd
lea eax, [ebx - 1]
mov edx, dword [ebp - 0xbc]
push eax
mov ecx, eax
fild dword [esp]
mov dword [esp], edx
fild dword [esp]
fmulp st(1)
add esp, 4
imul ecx, edx
fcomp qword [0x643a48]
fnstsw ax
sahf
ja 0x43679f
mov ebx, dword [ebp - 0xf8]
mov eax, 0x7fffffeb
mov edx, dword [ebx]
sub eax, edx
cmp eax, ecx
jge 0x4367ad
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x14
jmp 0x4382c3
mov edi, dword [ebp - 0xf8]
lea eax, [edx + ecx]
mov dword [edi], eax
jmp 0x436873
mov eax, dword [ebp - 0x114]
cmp dword [ebp - 0x140], 0
setne dl
shr eax, 0x1f
test edx, eax
je 0x4367e0
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x114], eax
mov edi, 1
cmp edi, ebx
jge 0x436873
mov edx, dword [ebp + 0x2c]
mov esi, dword [edx + 0x24]
push dword [ebp - 0x1c0]
push dword [ebp - 0x144]
push dword [ebp - 0x130]
call fcn.00577220
add esp, 0xc
mov ebx, dword [ebp - 0x14c]
cmp ebx, esi
jae 0x436855
mov eax, dword [ebp + 0x2c]
movzx edx, byte [ebx + 1]
mov ecx, dword [eax + 0x24]
movzx eax, byte [ebx]
shl eax, 8
or eax, edx
add eax, dword [ebp - 0x1c0]
sar eax, 8
mov byte [ecx], al
movzx eax, byte [ebx]
shl eax, 8
mov ecx, dword [ebp + 0x2c]
or al, byte [ebx + 1]
add ebx, 2
mov edx, dword [ecx + 0x24]
add eax, dword [ebp - 0x1c0]
mov byte [edx + 1], al
add dword [ecx + 0x24], 2
jmp 0x436813
mov ebx, dword [ebp - 0x1c0]
inc edi
add dword [ebp - 0x130], ebx
mov dword [ebp - 0x14c], esi
cmp edi, dword [ebp - 0xac]
jmp 0x4367e7
mov eax, dword [ebp - 0xb0]
test eax, eax
jle 0x436889
sub eax, dword [ebp - 0xac]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
js 0x436a73
cmp dword [ebp - 0xf8], 0
je 0x436900
test ecx, ecx
jle 0x436900
mov edx, dword [ebp - 0xbc]
mov eax, ecx
add edx, 7
push ecx
imul eax, edx
fild dword [esp]
mov dword [esp], edx
lea ebx, [eax - 6]
fild dword [esp]
fmulp st(1)
add esp, 4
fcomp qword [0x643a48]
fnstsw ax
sahf
ja 0x4368e2
mov ecx, dword [ebp - 0xf8]
mov eax, 0x7fffffeb
mov edx, dword [ecx]
sub eax, edx
cmp eax, ebx
jge 0x4368f0
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x14
jmp 0x4382c3
mov esi, dword [ebp - 0xf8]
lea eax, [edx + ebx]
mov dword [esi], eax
jmp 0x436a04
mov edi, ecx
dec edi
js 0x436a04
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x130]
mov esi, dword [eax + 0x24]
mov al, byte [ebp - 0xfc]
add eax, 0x69
mov byte [edx], al
inc edx
mov dword [ebp - 0x130], edx
test edi, edi
je 0x436971
mov byte [edx], 0x5e
inc edx
mov dword [ebp - 0x130], edx
xor edx, edx
cmp dword [ebp - 0x1c4], 0
je 0x43694c
mov edx, dword [ebp - 0x130]
sub edx, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x130]
mov eax, edx
sar eax, 8
mov dword [ebp - 0x1c4], ecx
mov byte [ecx], al
mov ebx, dword [ebp - 0x130]
mov byte [ebx + 1], dl
add ebx, 2
mov dword [ebp - 0x130], ebx
push dword [ebp - 0x1c0]
push dword [ebp - 0x144]
push dword [ebp - 0x130]
call fcn.00577220
add esp, 0xc
mov ecx, dword [ebp - 0x14c]
cmp ecx, esi
jae 0x4369ed
mov eax, dword [ebp + 0x2c]
movzx edx, byte [ecx + 1]
mov ebx, dword [eax + 0x24]
movzx eax, byte [ecx]
shl eax, 8
or eax, edx
add eax, dword [ebp - 0x1c0]
test edi, edi
je 0x4369b6
add eax, 4
jmp 0x4369b7
inc eax
shr eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x2c]
movzx eax, byte [ecx]
shl eax, 8
mov ebx, dword [edx + 0x24]
movzx edx, byte [ecx + 1]
or eax, edx
add eax, dword [ebp - 0x1c0]
test edi, edi
je 0x4369dd
add eax, 4
jmp 0x4369de
inc eax
mov byte [ebx + 1], al
add ecx, 2
mov ebx, dword [ebp + 0x2c]
add dword [ebx + 0x24], 2
jmp 0x436991
mov dword [ebp - 0x14c], esi
mov esi, dword [ebp - 0x1c0]
add dword [ebp - 0x130], esi
jmp 0x436902
cmp dword [ebp - 0x1c4], 0
je 0x436aec
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x130]
sub eax, dword [ebp - 0x1c4]
lea ebx, [eax + 1]
sub ecx, ebx
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
or eax, edx
je 0x436a3f
sub dword [ebp - 0x1c4], eax
jmp 0x436a49
mov dword [ebp - 0x1c4], 0
mov edi, dword [ebp - 0x130]
mov eax, ebx
sar eax, 8
mov byte [edi], 0x55
inc edi
mov byte [edi], al
mov byte [edi + 1], bl
add edi, 2
mov dword [ebp - 0x130], edi
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
jmp 0x436a04
add byte [edi], 3
jmp 0x436aec
mov esi, dword [ebp - 0x130]
sub esi, dword [ebp - 0x1bc]
mov edi, esi
movzx eax, byte [esi + 1]
movzx edx, byte [esi + 2]
shl eax, 8
or eax, edx
sub edi, eax
mov al, byte [ebp - 0xfc]
add eax, 0x56
mov byte [esi], al
cmp dword [ebp - 0xf8], 0
jne 0x436aec
cmp byte [edi], 0x5d
je 0x436aec
mov ebx, edi
push dword [ebp - 0x154]
mov edx, esi
mov eax, ebx
call fcn.00433a29
pop edx
test eax, eax
jne 0x436a6e
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
add ebx, eax
cmp byte [ebx], 0x54
je 0x436aab
jmp 0x436aec
cmp dl, 0x6f
je 0x436c3a
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xb
jmp 0x4382c3
cmp dword [ebp - 0x164], 0
je 0x436c3a
mov ebx, dword [ebp - 0xc8]
mov cl, byte [ebx]
cmp cl, 0x41
jne 0x436b26
mov al, byte [ebx + 3]
sub eax, 0xf
cmp al, 1
mov al, byte [0x644671]
ja 0x436b1e
movzx eax, al
lea eax, [ebx + eax + 2]
jmp 0x436b68
movzx eax, al
lea eax, [ebx + eax]
jmp 0x436b68
cmp cl, 0x27
sete dl
cmp cl, 0x34
sete al
or eax, edx
test al, 1
je 0x436b6e
movzx eax, cl
cmp dword [ebp - 0x154], 0
movzx eax, byte [eax + 0x644630]
lea edx, [ebx + eax]
mov dword [ebp - 0xc8], edx
je 0x436b6e
mov al, byte [edx - 1]
cmp al, 0xbf
jbe 0x436b6e
and eax, 0x3f
movzx eax, byte [eax + 0x644590]
lea eax, [edx + eax]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0x130]
sub ebx, edx
test ebx, ebx
jle 0x436c3a
movzx eax, byte [edx]
sub eax, 0x1f
cmp eax, 0x20
ja case.0x436b8f.32
jmp dword [eax*4 + 0x643a68]
mov byte [edx], 0x28
jmp 0x436c3a
mov byte [edx], 0x29
jmp 0x436c3a
mov byte [edx], 0x2a
jmp 0x436c3a
mov byte [edx], 0x2b
jmp 0x436c3a
mov byte [edx], 0x42
jmp 0x436c3a
mov byte [edx], 0x43
jmp 0x436c3a
mov byte [edx], 0x44
jmp 0x436c3a
mov byte [edx], 0x45
jmp 0x436c3a
mov byte [edx], 0x35
jmp 0x436c3a
mov byte [edx], 0x36
jmp 0x436c3a
mov byte [edx], 0x37
jmp 0x436c3a
mov byte [edx], 0x38
jmp 0x436c3a
lea eax, [edx + 3]
push ebx
push edx
push eax
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0xc8]
add dword [ebp - 0x130], 3
mov byte [eax], 0x5d
add ebx, 3
mov edx, dword [ebp - 0x130]
add esp, 0xc
mov byte [edx], 0x55
inc edx
mov dword [ebp - 0x130], edx
mov edx, ebx
sar edx, 8
mov ecx, dword [ebp - 0x130]
mov byte [ecx], dl
mov byte [ecx + 1], bl
mov eax, dword [ebp - 0xc8]
add ecx, 2
mov dword [ebp - 0x130], ecx
mov byte [eax + 1], dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 2], bl
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0x144], 0
or dword [ebx + 0x4c], esi
jmp 0x4382b8
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp - 0x128]
mov dword [ebp - 0x17c], 0
mov eax, dword [eax + 0x24]
lea ecx, [edx + 1]
mov dword [ebp - 0x178], edi
mov dword [ebp - 0x104], 0x5f
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x8c], ecx
cmp byte [edx + 1], 0x2a
jne 0x436daf
mov esi, dword [ebp + 0x2c]
movzx eax, byte [ecx + 1]
mov ebx, dword [esi + 0xc]
test byte [eax + ebx], 2
je 0x436daf
lea esi, [edx + 2]
mov dword [ebp - 0x1cc], str.ACCEPT
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x144], 0
mov eax, dword [ebp - 0x8c]
lea ecx, [eax + 1]
mov dword [ebp - 0x8c], ecx
mov dl, byte [eax + 1]
movzx eax, dl
test byte [eax + ebx], 2
jne 0x436cd5
cmp dl, 0x3a
je 0x434798
cmp dl, 0x29
jne 0x4347a6
sub ecx, esi
xor edi, edi
mov dword [ebp - 0x1c8], ecx
mov ebx, dword [edi*8 + 0x642c40]
cmp dword [ebp - 0x1c8], ebx
jne 0x436d71
push ebx
push dword [ebp - 0x1cc]
push esi
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x436d71
mov ecx, dword [edi*8 + 0x642c44]
cmp ecx, 0x70
jne 0x436d89
mov eax, dword [ebp + 0x2c]
mov dword [eax + 0x50], 1
mov edx, dword [eax + 0x20]
test edx, edx
je 0x436d89
mov ebx, dword [ebp - 0x130]
mov byte [ebx], 0x71
inc ebx
movzx ax, byte [edx + 5]
mov byte [ebx], al
mov ax, word [edx + 4]
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [edx]
mov dword [ebp - 0x130], ebx
jmp 0x436d48
mov eax, dword [ebp - 0x1cc]
inc edi
cmp edi, 6
lea ebx, [eax + ebx + 1]
mov dword [ebp - 0x1cc], ebx
jle 0x436d0c
jmp 0x436da1
mov edx, dword [ebp - 0x130]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x130], edx
cmp edi, 6
jle 0x4382b8
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x3c
jmp 0x4382c3
cmp byte [ecx], 0x3f
jne 0x437b1a
lea edx, [ecx + 1]
mov dword [ebp - 0x8c], edx
movzx eax, byte [ecx + 1]
cmp eax, 0x39
jg 0x436e2c
cmp eax, 0x30
jge 0x437731
cmp eax, 0x27
je 0x4373f5
jg 0x436e05
cmp eax, 0x23
je 0x436e8a
jg 0x436df7
cmp eax, 0x21
je 0x437261
jmp 0x437953
cmp eax, 0x26
je 0x437604
jmp 0x437953
cmp eax, 0x2b
je 0x437731
jg 0x436e1e
cmp eax, 0x28
je 0x436ef4
jmp 0x437953
cmp eax, 0x2d
je 0x437731
jmp 0x437953
cmp eax, 0x43
je 0x437304
jg 0x436e67
cmp eax, 0x3c
je 0x437293
jg 0x436e50
cmp eax, 0x3a
je 0x436eec
jmp 0x437953
cmp eax, 0x3d
je 0x437252
cmp eax, 0x3e
je 0x4372ec
jmp 0x437953
cmp eax, 0x52
je 0x437728
jg 0x436e80
cmp eax, 0x50
je 0x4373bc
jmp 0x437953
cmp eax, 0x7c
je 0x436ee2
jmp 0x437953
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov al, byte [edx + 1]
test al, al
setne dl
cmp al, 0x29
setne al
movzx eax, al
test edx, eax
je 0x436ec5
add ecx, 3
mov dword [ebp - 0x8c], ecx
inc ecx
mov al, byte [ecx - 1]
test al, al
setne dl
cmp al, 0x29
setne al
movzx eax, al
test edx, eax
jne 0x436eaa
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0
jne 0x4382b8
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x12
jmp 0x4382c3
mov dword [ebp - 0x16c], 1
lea eax, [edx + 1]
jmp 0x437b0b
mov dword [ebp - 0x104], 0x60
cmp byte [edx + 1], 0x3f
jne 0x436f26
mov cl, byte [edx + 2]
cmp cl, 0x3d
sete dl
cmp cl, 0x21
sete al
or eax, edx
test al, 1
jne 0x437b58
cmp cl, 0x3c
je 0x437b58
mov esi, dword [ebp - 0x130]
mov byte [esi + 3], 0x64
mov dword [ebp - 0x17c], 3
mov ecx, dword [ebp - 0x8c]
or esi, 0xffffffff
cmp byte [ecx + 1], 0x52
jne 0x436f6e
cmp byte [ecx + 2], 0x26
jne 0x436f6e
mov edi, dword [ebp - 0x130]
lea eax, [ecx + 2]
mov dword [ebp - 0x180], 0xffffffff
mov dword [ebp - 0x8c], eax
mov byte [edi + 3], 0x66
jmp 0x436fc1
mov al, byte [ecx + 1]
cmp al, 0x3c
jne 0x436f81
mov dword [ebp - 0x180], 0x3e
jmp 0x436f8f
cmp al, 0x27
jne 0x436f9a
mov dword [ebp - 0x180], 0x27
lea eax, [ecx + 1]
mov dword [ebp - 0x8c], eax
jmp 0x436fc1
cmp al, 0x2d
mov dword [ebp - 0x180], 0
sete dl
cmp al, 0x2b
sete al
or eax, edx
test al, 1
je 0x436fc1
lea eax, [ecx + 1]
mov dword [ebp - 0x8c], eax
movzx esi, byte [ecx + 1]
mov edx, dword [ebp - 0x8c]
mov ebx, dword [ebp + 0x2c]
movzx eax, byte [edx + 1]
mov ecx, dword [ebx + 0xc]
lea edi, [edx + 1]
test byte [eax + ecx], 0x10
mov dword [ebp - 0x1e4], edi
je 0x4347b4
xor edi, edi
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x8c], eax
mov ebx, eax
movzx eax, byte [edx + 1]
test byte [eax + ecx], 0x10
je 0x437025
test edi, edi
js 0x43701a
movzx edx, byte [ebx]
test byte [edx + 0x642b40], 4
je 0x437017
imul eax, edi, 0xa
lea edi, [eax + edx - 0x30]
jmp 0x43701a
or edi, 0xffffffff
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
jmp 0x436fec
mov eax, dword [ebp - 0x8c]
mov edx, eax
sub edx, dword [ebp - 0x1e4]
cmp dword [ebp - 0x180], 0
mov dword [ebp - 0x1d0], edx
jle 0x437054
movzx edx, byte [eax]
inc eax
cmp edx, dword [ebp - 0x180]
mov dword [ebp - 0x8c], eax
jne 0x437068
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
cmp byte [edx], 0x29
je 0x43707c
dec dword [ebp - 0x8c]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x1a
jmp 0x4382c3
cmp dword [ebp - 0xf8], 0
jne 0x437b58
test esi, esi
jle 0x4370c7
test edi, edi
jle 0x4347ce
mov ebx, dword [ebp + 0x2c]
cmp esi, 0x2d
mov eax, dword [ebx + 0x34]
jne 0x4370a7
sub eax, edi
lea edi, [eax + 1]
jmp 0x4370a9
add edi, eax
test edi, edi
jle 0x4370b9
mov esi, dword [ebp + 0x2c]
cmp edi, dword [esi + 0x38]
jle 0x437230
mov edi, dword [ebp + 0x10]
mov dword [edi], 0xf
jmp 0x4382c3
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x2c]
mov eax, dword [eax + 0x2c]
mov ebx, dword [esi + 0x28]
xor esi, esi
cmp dword [ebp - 0xf8], eax
mov dword [ebp - 0x1dc], eax
jge 0x43710e
push dword [ebp - 0x1d0]
lea eax, [ebx + 2]
push eax
push dword [ebp - 0x1e4]
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x43710e
mov edx, dword [ebp + 0x2c]
inc esi
add ebx, dword [edx + 0x30]
cmp esi, dword [ebp - 0x1dc]
jmp 0x4370e1
mov ecx, dword [ebp + 0x2c]
cmp esi, dword [ecx + 0x2c]
jge 0x43713d
movzx edi, byte [ebx]
movzx eax, byte [ebx + 1]
shl edi, 8
mov ebx, dword [ebp - 0x130]
or edi, eax
mov eax, edi
inc byte [ebx + 3]
sar eax, 8
mov byte [ebx + 4], al
mov eax, edi
mov byte [ebx + 5], al
jmp 0x437b58
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x1e4]
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp + 0x2c]
push dword [ebp - 0x1d0]
call fcn.00433551
pop edx
mov esi, eax
pop ecx
test eax, eax
jle 0x437176
mov edx, dword [ebp - 0x130]
mov ecx, esi
sar eax, 8
inc byte [edx + 3]
jmp 0x4371de
cmp dword [ebp - 0x180], 0
jne 0x4377ef
mov ebx, dword [ebp - 0x1e4]
cmp byte [ebx], 0x52
jne 0x4371e9
mov esi, 1
xor edi, edi
cmp esi, dword [ebp - 0x1d0]
jge 0x4371c8
mov eax, dword [ebp - 0x1e4]
movzx edx, byte [esi + eax]
test byte [edx + 0x642b40], 4
je 0x4370b9
imul eax, edi, 0xa
inc esi
lea edi, [eax + edx - 0x30]
cmp esi, dword [ebp - 0x1d0]
jl 0x43719d
test edi, edi
jne 0x4371cd
mov edi, 0xffff
mov edx, dword [ebp - 0x130]
mov eax, edi
sar eax, 8
mov byte [edx + 3], 0x66
mov ecx, edi
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x437b58
cmp dword [ebp - 0x1d0], 6
jne 0x437224
push 6
push str.DEFINE
push dword [ebp - 0x1e4]
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x437224
mov ebx, dword [ebp - 0x130]
mov byte [ebx + 3], 0x68
mov dword [ebp - 0x17c], 1
jmp 0x437b58
test edi, edi
jle 0x43723d
mov esi, dword [ebp + 0x2c]
cmp edi, dword [esi + 0x38]
jg 0x43723d
mov eax, edi
mov edx, dword [ebp - 0x130]
sar eax, 8
jmp 0x4371dc
cmp edi, 1
mov ebx, dword [ebp + 0x10]
sbb eax, eax
and eax, 0x14
add eax, 0xf
mov dword [ebx], eax
jmp 0x4382c3
lea eax, [ecx + 2]
mov dword [ebp - 0x104], 0x58
jmp 0x4372ae
lea eax, [ecx + 2]
mov dword [ebp - 0x104], 0x59
mov dword [ebp - 0x8c], eax
cmp byte [edx + 1], 0x29
jne 0x437b66
mov esi, dword [ebp - 0x130]
mov byte [esi], 0x6f
inc esi
mov dword [ebp - 0x130], esi
jmp 0x437afb
movzx edx, byte [edx + 1]
cmp edx, 0x21
je 0x4372b9
cmp edx, 0x3d
jne 0x4372c5
mov dword [ebp - 0x104], 0x5a
lea eax, [ecx + 3]
mov dword [ebp - 0x8c], eax
jmp 0x437b66
mov dword [ebp - 0x104], 0x5b
jmp 0x4372ab
mov edi, dword [ebp + 0x2c]
mov eax, dword [edi + 0xc]
test byte [edx + eax], 0x10
jne 0x4373f5
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x18
jmp 0x4382c3
mov dword [ebp - 0x104], 0x5d
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
jmp 0x437b58
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0x148], edx
xor ebx, ebx
mov byte [edx], 0x53
mov edx, dword [ebp - 0x8c]
inc dword [ebp - 0x130]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
movzx eax, byte [edx + 1]
test byte [eax + 0x642b40], 4
je 0x437363
lea ecx, [edx + 2]
imul eax, ebx, 0xa
movzx edx, byte [ecx - 1]
mov dword [ebp - 0x8c], ecx
inc ecx
lea ebx, [eax + edx - 0x30]
movzx eax, byte [ecx - 1]
test byte [eax + 0x642b40], 4
jne 0x437344
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x29
jne 0x4347dc
cmp ebx, 0xff
jg 0x4347ea
mov ecx, dword [ebp - 0x130]
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebx + 0x18]
inc eax
sar eax, 8
mov byte [ecx], al
mov eax, dword [ebp - 0x8c]
sub al, byte [ebx + 0x18]
mov byte [ecx + 2], 0
inc eax
mov byte [ecx + 3], 0
mov byte [ecx + 1], al
add ecx, 4
mov dword [ebp - 0x130], ecx
jmp 0x437afb
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov al, byte [edx + 1]
cmp al, 0x3d
je 0x4373d0
cmp al, 0x3e
jne 0x4373ed
cmp al, 0x3e
mov dword [ebp - 0x180], 0x29
sete al
movzx eax, al
mov dword [ebp - 0x168], eax
jmp 0x437618
cmp al, 0x3c
jne 0x4347f8
mov edx, dword [ebp - 0x8c]
xor eax, eax
mov edi, dword [ebp + 0x2c]
cmp byte [edx], 0x3c
lea esi, [edx + 1]
sete al
dec eax
mov dword [ebp - 0x1d4], esi
and eax, 0xffffffe9
mov dword [ebp - 0x8c], esi
add eax, 0x3e
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x180], eax
movzx eax, byte [edx + 1]
test byte [eax + ecx], 0x10
je 0x437443
add edx, 2
mov dword [ebp - 0x8c], edx
inc edx
movzx eax, byte [edx - 1]
test byte [eax + ecx], 0x10
jne 0x437432
mov eax, dword [ebp - 0x8c]
mov edx, eax
sub edx, dword [ebp - 0x1d4]
cmp dword [ebp - 0xf8], 0
mov dword [ebp - 0x1d0], edx
je 0x4374c5
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x434806
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx + 0x2c], 0x270f
jg 0x434814
mov eax, edx
add eax, 3
cmp eax, dword [ecx + 0x30]
jle 0x4375f3
mov dword [ecx + 0x30], eax
cmp edx, 0x20
jle 0x4375f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x30
jmp 0x4382c3
mov edi, dword [ebp + 0x2c]
mov eax, dword [edi + 0x2c]
sub eax, esi
imul eax, edx
push eax
lea eax, [ebx + edx]
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
jmp 0x437566
mov eax, dword [ebp + 0x2c]
xor esi, esi
mov dword [ebp - 0x1d8], 0
mov edx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
mov dword [ebp - 0x1f8], edx
cmp dword [ebp - 0xf8], edx
jge 0x43756f
push dword [ebp - 0x1d0]
lea eax, [ebx + 2]
push eax
push dword [ebp - 0x1d4]
call sub.msvcrt.dll_memcmp
add esp, 0xc
mov ecx, eax
test eax, eax
jne 0x43754d
mov edi, dword [ebp - 0x1d0]
cmp byte [ebx + edi + 2], 0
jne 0x43754a
movzx eax, byte [ebx]
movzx edx, byte [ebx + 1]
shl eax, 8
or eax, edx
mov edx, dword [ebp + 0x2c]
mov edi, dword [edx + 0x34]
inc edi
cmp eax, edi
je 0x43753e
test dword [ebp - 0x128], 0x80000
je 0x434822
mov dword [ebp - 0x1d8], 1
jmp 0x43754d
or ecx, 0xffffffff
mov eax, dword [ebp + 0x2c]
test ecx, ecx
mov edx, dword [eax + 0x30]
js 0x4374a7
inc esi
add ebx, edx
cmp esi, dword [ebp - 0x1f8]
jl 0x4374ec
cmp dword [ebp - 0x1d8], 0
jne 0x4375bd
mov edx, dword [ebp + 0x2c]
xor esi, esi
mov edi, dword [edx + 0x2c]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x1f8], edi
cmp esi, edi
jge 0x4375bd
cmp ecx, ebx
je 0x4375ad
movzx eax, byte [ecx]
movzx edx, byte [ecx + 1]
shl eax, 8
or eax, edx
mov edx, dword [ebp + 0x2c]
mov edi, dword [edx + 0x34]
inc edi
cmp eax, edi
jne 0x4375ae
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x41
jmp 0x4382c3
dec esi
mov edx, dword [ebp + 0x2c]
inc esi
add ecx, dword [edx + 0x30]
cmp esi, dword [ebp - 0x1f8]
jmp 0x437582
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 0x34]
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ecx + 0x34]
inc eax
mov byte [ebx + 1], al
lea eax, [ebx + 2]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push eax
call fcn.00577220
mov esi, dword [ebp - 0x1d0]
add esp, 0xc
mov byte [ebx + esi + 2], 0
mov edi, dword [ebp + 0x2c]
inc dword [ebp - 0x8c]
inc dword [edi + 0x2c]
jmp 0x437b32
mov dword [ebp - 0x180], 0x29
mov dword [ebp - 0x168], 1
mov edx, dword [ebp - 0x8c]
mov ebx, dword [ebp + 0x2c]
lea edi, [edx + 1]
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x8c], edi
movzx eax, byte [edx + 1]
test byte [eax + ecx], 0x10
je 0x43764b
add edx, 2
mov dword [ebp - 0x8c], edx
inc edx
movzx eax, byte [edx - 1]
test byte [eax + ecx], 0x10
jne 0x43763a
mov eax, dword [ebp - 0x8c]
mov esi, eax
sub esi, edi
mov dword [ebp - 0x1d0], esi
cmp dword [ebp - 0xf8], 0
je 0x43768b
test esi, esi
je 0x434830
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x43483e
cmp esi, 0x20
jg 0x43484c
xor edi, edi
jmp 0x437716
mov eax, dword [ebp + 0x2c]
xor esi, esi
mov edx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
cmp dword [ebp - 0xf8], edx
mov dword [ebp - 0x1e0], edx
jge 0x4376d7
push dword [ebp - 0x1d0]
lea eax, [ebx + 2]
push eax
push edi
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4376c8
mov ecx, dword [ebp - 0x1d0]
cmp byte [ebx + ecx + 2], 0
je 0x4376d7
mov eax, dword [ebp + 0x2c]
inc esi
add ebx, dword [eax + 0x30]
cmp esi, dword [ebp - 0x1e0]
jmp 0x4376a2
mov edx, dword [ebp + 0x2c]
cmp esi, dword [edx + 0x2c]
jge 0x4376ed
movzx edi, byte [ebx]
movzx eax, byte [ebx + 1]
shl edi, 8
or edi, eax
jmp 0x437716
mov eax, dword [ebp - 0x128]
mov edx, edi
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp + 0x2c]
push dword [ebp - 0x1d0]
call fcn.00433551
pop ebx
mov edi, eax
pop esi
test eax, eax
jle 0x43485a
cmp dword [ebp - 0x168], 0
je 0x437fdd
jmp 0x437810
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x180], 0x29
mov edx, dword [ebp - 0x8c]
movzx esi, byte [edx]
cmp esi, 0x2b
jne 0x43776d
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
movzx eax, byte [edx + 1]
test byte [eax + 0x642b40], 4
jne 0x43778c
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x3f
jmp 0x4382c3
cmp esi, 0x2d
jne 0x43778c
movzx eax, byte [edx + 1]
test byte [eax + 0x642b40], 4
je 0x437953
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
xor edi, edi
movzx edx, byte [eax]
test byte [edx + 0x642b40], 4
je 0x4377be
lea ecx, [eax + 1]
imul eax, edi, 0xa
mov dword [ebp - 0x8c], ecx
inc ecx
lea edi, [eax + edx - 0x30]
movzx edx, byte [ecx - 1]
test byte [edx + 0x642b40], 4
jne 0x4377a3
mov eax, dword [ebp - 0x8c]
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x434868
cmp esi, 0x2d
jne 0x4377fd
test edi, edi
je 0x434876
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx + 0x34]
sub eax, edi
lea edi, [eax + 1]
test edi, edi
jg 0x437810
mov esi, dword [ebp + 0x10]
mov dword [esi], 0xf
jmp 0x4382c3
cmp esi, 0x2b
jne 0x437810
test edi, edi
je 0x434884
mov eax, dword [ebp + 0x2c]
add edi, dword [eax + 0x34]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x144], edx
mov esi, dword [ecx + 0x14]
cmp dword [ebp - 0xf8], 0
jne 0x4378f3
mov byte [edx], 0
test edi, edi
je 0x43784a
push edi
push dword [ebp - 0x154]
push dword [ecx + 0x14]
call fcn.0043390f
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x4378a6
mov eax, dword [ebp - 0x128]
xor edx, edx
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp + 0x2c]
push edi
call fcn.00433551
pop edx
test eax, eax
pop ecx
js 0x434892
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x24]
lea esi, [eax + edi]
mov edi, dword [ebp - 0x130]
sub edi, eax
mov eax, edi
add eax, 4
sar eax, 8
mov byte [edx], al
mov al, byte [ebp - 0x130]
mov edx, dword [ebx + 0x24]
sub al, byte [ebx + 0x14]
add eax, 4
mov byte [edx + 1], al
add dword [ebx + 0x24], 2
jmp 0x4378f3
movzx eax, byte [esi + 1]
movzx edx, byte [esi + 2]
shl eax, 8
or eax, edx
jne 0x4378f3
lea ebx, [ebp - 0x64]
test ebx, ebx
je 0x4378e5
cmp dword [ebp - 0x60], esi
jb 0x4378e5
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x130]
push dword [ebp - 0x154]
call fcn.00433a29
pop edi
test eax, eax
je 0x4378f3
mov ebx, dword [ebx]
test ebx, ebx
je 0x4378e5
cmp dword [ebx + 4], esi
jmp 0x4378bf
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x28
jmp 0x4382c3
mov ecx, dword [ebp - 0x130]
mov eax, esi
mov byte [ecx], 0x5d
mov byte [ecx + 1], 0
mov byte [ecx + 2], 6
add ecx, 3
mov byte [ecx], 0x52
mov ebx, dword [ebp + 0x2c]
sub eax, dword [ebx + 0x14]
sar eax, 8
mov byte [ecx + 1], al
mov eax, esi
sub al, byte [ebx + 0x14]
mov byte [ecx + 2], al
add ecx, 3
mov byte [ecx], 0x55
mov byte [ecx + 1], 0
mov byte [ecx + 2], 6
add ecx, 3
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0xbc], 9
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x4382b8
jmp 0x438260
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
lea ebx, [ebp - 0xb4]
mov esi, dword [ebp - 0x8c]
mov cl, byte [esi]
cmp cl, 0x29
setne dl
xor eax, eax
cmp cl, 0x3a
setne al
test edx, eax
je 0x437a28
movzx edx, cl
lea eax, [esi + 1]
cmp edx, 0x69
mov dword [ebp - 0x8c], eax
je 0x4379e4
jg 0x4379b8
cmp edx, 0x55
je 0x437a01
jg 0x4379b1
cmp edx, 0x2d
je 0x4379cd
cmp edx, 0x4a
je 0x4379d5
jmp 0x437a14
cmp edx, 0x58
je 0x437a0c
jmp 0x437a14
cmp edx, 0x73
je 0x4379f1
jg 0x4379c6
cmp edx, 0x6d
je 0x4379e9
jmp 0x437a14
cmp edx, 0x78
je 0x4379f9
jmp 0x437a14
lea ebx, [ebp - 0xb8]
jmp 0x43796d
or dword [ebx], 0x80000
mov esi, dword [ebp + 0x2c]
or dword [esi + 0x48], 0x10
jmp 0x43796d
or dword [ebx], 1
jmp 0x43796d
or dword [ebx], 2
jmp 0x43796d
or dword [ebx], 4
jmp 0x43796d
or dword [ebx], 8
jmp 0x43796d
or dword [ebx], 0x200
jmp 0x43796d
or dword [ebx], 0x40
jmp 0x43796d
dec dword [ebp - 0x8c]
mov edi, dword [ebp + 0x10]
mov dword [edi], 0xc
jmp 0x4382c3
mov eax, dword [ebp - 0x128]
or eax, dword [ebp - 0xb4]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0xb8]
not eax
and dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x29
jne 0x437b0a
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + 0x14]
add eax, 3
cmp dword [ebp - 0x130], eax
jne 0x437a8a
cmp dword [ebp - 0xf8], 0
je 0x437a7c
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx], 6
jne 0x437a8a
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp - 0x178]
mov dword [ebx + 0x44], esi
jmp 0x437aec
and dword [ebp - 0x128], 7
mov eax, dword [ebp - 0x178]
and eax, 7
cmp dword [ebp - 0x128], eax
je 0x437ab5
mov edi, dword [ebp - 0x130]
mov byte [edi], 0x19
inc edi
mov byte [edi], al
inc edi
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x178]
shr eax, 9
and eax, 1
mov dword [ebp - 0x108], eax
xor eax, 1
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x178]
and eax, 1
cmp eax, 1
sbb edx, edx
not edx
and edx, 0x100
mov dword [ebp - 0x120], edx
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x144], 0
jmp 0x4382b8
inc eax
mov dword [ebp - 0x104], 0x5e
jmp 0x4372f9
test dword [ebp - 0x128], 0x1000
je 0x437b32
mov dword [ebp - 0x104], 0x5e
jmp 0x437b58
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp - 0x130]
mov eax, dword [ebx + 0x34]
inc eax
mov dword [ebx + 0x34], eax
sar eax, 8
mov byte [esi + 3], al
mov eax, dword [ebx + 0x34]
mov byte [esi + 4], al
mov dword [ebp - 0x17c], 2
mov edi, dword [ebp - 0x130]
mov dword [ebp - 0x144], edi
jmp 0x437b70
mov dword [ebp - 0x144], 0
mov edx, dword [ebp - 0x130]
mov al, byte [ebp - 0x104]
mov byte [edx], al
mov dword [ebp - 0xc8], edx
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x128]
and edx, 7
lea eax, [ebp - 0xbc]
mov esi, dword [ecx + 0x4c]
mov dword [ebp - 0xbc], 0
cmp dword [ebp - 0xf8], 0
jne 0x437bae
xor eax, eax
push eax
lea ebx, [ebp - 0x64]
push dword [ebp + 0x2c]
lea eax, [ebp - 0xc0]
push ebx
push eax
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0x104]
push dword [ebp - 0x17c]
sub eax, 0x5a
push dword [ebp - 0x16c]
cmp eax, 1
setbe al
movzx eax, al
push eax
lea eax, [ebp - 0x8c]
push dword [ebp + 0x10]
push eax
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0x178]
call fcn.004344d7
add esp, 0x2c
test eax, eax
je 0x4382c3
cmp dword [ebp - 0x104], 0x60
sete dl
xor eax, eax
cmp dword [ebp - 0xf8], 0
sete al
test edx, eax
je 0x437c80
mov ecx, dword [ebp - 0x130]
xor ebx, ebx
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
inc ebx
or eax, edx
add ecx, eax
cmp byte [ecx], 0x55
jne 0x437c2c
mov edi, dword [ebp - 0x130]
cmp byte [edi + 3], 0x68
jne 0x437c60
dec ebx
jg 0x4348a0
mov dword [ebp - 0x104], 0x68
jmp 0x437c80
cmp ebx, 2
jg 0x4348ae
dec ebx
jne 0x437c80
mov dword [ebp - 0xc0], 0xffffffff
mov dword [ebp - 0xc4], 0xffffffff
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x29
jne 0x4348bc
cmp dword [ebp - 0xf8], 0
je 0x437cf1
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xbc]
mov ebx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ebx
lea edx, [ecx - 6]
cmp eax, edx
jl 0x4348ca
mov edx, dword [ebp - 0xf8]
lea eax, [ebx + ecx - 6]
mov ecx, dword [ebp - 0x130]
mov dword [edx], eax
mov byte [ecx], 0x5e
inc ecx
mov byte [ecx], 0
mov byte [ecx + 1], 3
add ecx, 2
mov byte [ecx], 0x55
inc ecx
mov byte [ecx], 0
mov byte [ecx + 1], 3
add ecx, 2
mov dword [ebp - 0x130], ecx
jmp 0x4382b8
mov ebx, dword [ebp - 0xc8]
mov dword [ebp - 0x130], ebx
cmp dword [ebp - 0x104], 0x68
je 0x4382b8
mov edi, dword [ebp - 0x114]
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x140], 0
cmp dword [ebp - 0x104], 0x5c
jle 0x437d81
cmp eax, 0xfffffffe
mov eax, dword [ebp - 0xc4]
jne 0x437d6a
mov dword [ebp - 0x110], 0xffffffff
test eax, eax
js 0x437d5e
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x140], 1
mov dword [ebp - 0x11c], 0xffffffff
jmp 0x437d8e
test eax, eax
js 0x437d8e
cmp dword [ebp - 0xc0], 0
jns 0x437d8e
or eax, esi
mov dword [ebp - 0xc0], eax
jmp 0x437d8e
cmp dword [ebp - 0x104], 0x58
jne 0x4382b8
mov eax, dword [ebp - 0xc0]
test eax, eax
js 0x4382b8
mov dword [ebp - 0x114], eax
jmp 0x4382b8
push 0
mov edx, dword [ebp + 0x2c]
push dword [ebp - 0x128]
push dword [edx + 0x34]
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x8c]
call fcn.00432d00
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov esi, eax
cmp dword [ecx], 0
jne 0x4382c3
test eax, eax
jns 0x438108
cmp eax, 0xffffffe6
jne 0x437e1c
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x5c
jne 0x437e0d
cmp byte [eax + 2], 0x45
jne 0x437e0d
add eax, 2
mov dword [ebp - 0x8c], eax
jmp 0x4382b8
mov dword [ebp - 0x13c], 1
jmp 0x4382b8
cmp eax, 0xffffffe7
je 0x4382b8
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x437e44
neg eax
cmp eax, 5
jle 0x437e44
cmp eax, 0x16
jg 0x437e44
mov dword [ebp - 0x110], 0xffffffff
mov ebx, dword [ebp - 0x110]
mov edi, dword [ebp - 0x114]
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], edi
cmp esi, 0xffffffe5
jne 0x437f6a
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp + 0x2c]
lea esi, [ecx + 1]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x8c], esi
xor eax, eax
cmp byte [ecx + 1], 0x3c
sete al
dec eax
mov dword [ebp - 0x17c], 0
and eax, 0xffffffe9
mov dword [ebp - 0x16c], 0
add eax, 0x3e
mov dword [ebp - 0x180], eax
mov bl, byte [esi + 1]
cmp bl, 0x2b
setne dl
xor eax, eax
cmp bl, 0x2d
setne al
test edx, eax
je 0x437f2d
add ecx, 2
mov edi, 1
test bl, bl
je 0x437f00
movzx eax, bl
cmp eax, dword [ebp - 0x180]
je 0x437f00
mov ebx, dword [ebp + 0x2c]
movzx edx, byte [ecx]
mov eax, dword [ebx + 0xc]
movzx edx, byte [edx + eax]
xor eax, eax
test dl, 4
setne al
neg eax
and edi, eax
and dl, 0x10
je 0x437f00
inc ecx
mov al, byte [ecx]
test al, al
je 0x437f00
movzx eax, al
jmp 0x437ece
movzx eax, byte [ecx]
cmp eax, dword [ebp - 0x180]
je 0x437f19
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x39
jmp 0x4382b8
mov dword [ebp - 0x168], 1
test edi, edi
je 0x437618
jmp 0x437f5c
movzx eax, byte [esi + 2]
add ecx, 3
test byte [eax + 0x642b40], 4
je 0x437f43
inc ecx
movzx eax, byte [ecx]
jmp 0x437f34
movzx eax, byte [ecx]
cmp eax, dword [ebp - 0x180]
je 0x437f5c
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x39
jmp 0x4382b8
lea eax, [esi + 1]
mov dword [ebp - 0x8c], eax
jmp 0x43773b
cmp esi, 0xffffffe4
jne 0x437fd1
mov ebx, dword [ebp - 0x8c]
mov cl, byte [ebx + 1]
cmp cl, 0x3c
sete dl
cmp cl, 0x27
sete al
or eax, edx
test al, 1
jne 0x437f8f
cmp cl, 0x7b
jne 0x437fd1
lea eax, [ebx + 1]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x8c], eax
mov al, byte [ebx + 1]
mov dword [ebp - 0x180], 0x3e
cmp al, 0x3c
je 0x437618
cmp al, 0x27
setne al
movzx eax, al
dec eax
and eax, 0xffffffaa
add eax, 0x7d
mov dword [ebp - 0x180], eax
jmp 0x437618
mov eax, esi
neg eax
cmp eax, 0x1c
jle 0x438052
lea edi, [eax - 0x1d]
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x437ff0
mov dword [ebp - 0x110], 0xffffffff
mov eax, dword [ebp - 0x130]
mov ecx, edi
mov dword [ebp - 0x144], eax
mov byte [eax], 0x51
mov eax, edi
sar eax, 8
inc dword [ebp - 0x130]
mov edx, dword [ebp - 0x130]
mov byte [edx], al
mov byte [edx + 1], cl
mov ebx, dword [ebp + 0x2c]
add edx, 2
mov dword [ebp - 0x130], edx
cmp edi, 0x1f
mov edx, dword [ebx + 0x40]
jg 0x438036
mov eax, 1
shl eax, cl
or eax, edx
jmp 0x43803b
mov eax, edx
or eax, 1
mov esi, dword [ebp + 0x2c]
mov dword [esi + 0x40], eax
cmp edi, dword [esi + 0x3c]
jle 0x4382b8
mov dword [esi + 0x3c], edi
jmp 0x4382b8
lea eax, [esi + 0x10]
cmp eax, 1
ja 0x4380d2
push dword [ebp + 0x10]
lea eax, [ebp - 0xcc]
lea edx, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x8c]
call fcn.00433139
pop ecx
test eax, eax
pop ebx
js 0x4382c3
mov edi, dword [ebp - 0x130]
inc dword [ebp - 0x130]
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x144], edi
mov ecx, edi
cmp esi, 0xfffffff0
lea ebx, [edx + 1]
mov edx, dword [ebp - 0xd0]
jne 0x4380aa
dec edx
jmp 0x4380ac
test edx, edx
je 0x4380b2
mov dl, 0x10
jmp 0x4380b4
mov dl, 0xf
mov byte [ecx], dl
mov ecx, dword [ebp - 0x130]
mov byte [ecx], al
mov eax, dword [ebp - 0xcc]
mov byte [ebx], al
inc ebx
mov dword [ebp - 0x130], ebx
jmp 0x4382b8
lea eax, [esi + 0x16]
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x144], ebx
cmp eax, 0x10
jbe 0x4380f0
mov dword [ebp - 0x144], 0
mov eax, esi
mov esi, dword [ebp - 0x130]
neg eax
mov byte [esi], al
inc esi
mov dword [ebp - 0x130], esi
jmp 0x4382b8
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x438131
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.00443000
pop edi
mov ecx, eax
pop edx
jmp 0x438190
mov eax, esi
mov byte [ebp - 0xa8], al
mov ecx, 1
jmp 0x438190
mov edx, esi
mov ecx, 1
cmp dword [ebp - 0x154], 0
mov byte [ebp - 0xa8], dl
setne dl
xor eax, eax
cmp esi, 0xbf
setg al
test edx, eax
je 0x438190
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx + 1]
and eax, 0xc0
add eax, 0xffffff80
jne 0x438190
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
mov al, byte [edx + 1]
mov byte [ebp + ecx - 0xa8], al
inc ecx
jmp 0x438166
mov eax, dword [ebp - 0x128]
mov ebx, dword [ebp - 0x130]
and eax, 1
inc dword [ebp - 0x130]
cmp eax, 1
mov dword [ebp - 0x144], ebx
sbb eax, eax
xor esi, esi
add eax, 0x1d
mov byte [ebx], al
cmp esi, ecx
jge 0x4381d4
mov edi, dword [ebp - 0x130]
mov al, byte [ebp + esi - 0xa8]
inc esi
mov byte [edi], al
inc edi
mov dword [ebp - 0x130], edi
jmp 0x4381b7
mov bl, byte [ebp - 0xa8]
cmp bl, 0xd
sete dl
cmp bl, 0xa
sete al
or eax, edx
test al, 1
je 0x4381f3
mov eax, dword [ebp + 0x2c]
or dword [eax + 0x48], 0x20
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x43826c
mov edx, dword [ebp - 0x114]
cmp ecx, 1
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x11c], 0xffffffff
sete dl
cmp dword [ebp - 0x120], 0
sete al
or eax, edx
test al, 1
je 0x438256
movzx ebx, bl
mov esi, dword [ebp - 0x120]
or ebx, esi
dec ecx
mov dword [ebp - 0x110], ebx
je 0x4382b8
mov edi, dword [ebp - 0x130]
mov eax, dword [ebp + 0x2c]
movzx edi, byte [edi - 1]
mov eax, dword [eax + 0x4c]
or edi, eax
mov dword [ebp - 0x114], edi
jmp 0x4382b8
mov dword [ebp - 0x114], 0xffffffff
mov dword [ebp - 0x110], 0xffffffff
jmp 0x4382b8
mov edx, dword [ebp - 0x110]
dec ecx
mov dword [ebp - 0x11c], edx
mov ebx, dword [ebp - 0x114]
sete dl
cmp dword [ebp - 0x120], 0
sete al
or eax, edx
mov dword [ebp - 0x118], ebx
test al, 1
je 0x4382b8
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp - 0x120]
movzx esi, byte [esi - 1]
mov eax, dword [eax + 0x4c]
or esi, edi
or esi, eax
mov dword [ebp - 0x114], esi
inc dword [ebp - 0x8c]
jmp 0x4348e2
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x78], eax
mov dword [edx], eax
jmp 0x4384f4
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 0x34]
cmp eax, dword [ebp - 0xf4]
jle 0x4382ea
mov dword [ebp - 0xf4], eax
cmp dword [ebp + 0x30], 0
jne 0x4383de
mov ebx, dword [ebp - 0xdc]
cmp byte [ebx], 0x54
je 0x438313
mov esi, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xec], edi
jmp 0x438377
cmp dword [ebp - 0xe8], 0
js 0x438340
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x7c]
je 0x438350
cmp dword [ebp - 0xec], 0
jns 0x438336
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], 0xffffffff
mov eax, dword [ebp - 0x7c]
test eax, eax
js 0x438350
cmp dword [ebp - 0x80], 0
jns 0x438350
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0xec]
mov eax, ecx
and dh, 0xfd
and ah, 0xfd
cmp edx, eax
je 0x438371
mov dword [ebp - 0xec], 0xffffffff
jmp 0x438377
or dword [ebp - 0xec], ecx
cmp dword [ebp + 0x14], 0
je 0x4383de
mov eax, dword [ebp - 0x74]
mov byte [eax], 0
push dword [ebp + 0x2c]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xdc]
push 0
call fcn.00433635
pop ebx
mov edx, eax
pop esi
cmp eax, 0xfffffffd
jne 0x4383ab
mov edx, dword [ebp + 0x2c]
mov dword [edx + 0x54], 1
jmp 0x4383de
test eax, eax
jns 0x4383d0
xor eax, eax
cmp edx, 0xfffffffe
sete al
dec eax
mov ecx, dword [ebp + 0x10]
and eax, 0xfffffff5
mov ebx, dword [ebp + 0xc]
add eax, 0x24
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [ebx], eax
jmp 0x4384f4
sar eax, 8
mov esi, dword [ebp - 0xe0]
mov byte [esi], al
mov byte [esi + 1], dl
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x7c
je 0x438507
cmp dword [ebp + 0x30], 0
jne 0x438425
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xdc]
movzx eax, byte [edi + 1]
movzx edx, byte [edi + 2]
shl eax, 8
mov byte [edi + 2], cl
or eax, edx
mov edx, ecx
sar edx, 8
mov ecx, eax
mov byte [edi + 1], dl
sub edi, eax
mov dword [ebp - 0xdc], edi
test eax, eax
jg 0x4383f9
cmp dword [ebp - 0xe4], 0
jle 0x438439
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + 0x20]
mov eax, dword [eax]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0x74]
mov byte [eax], 0x55
mov edx, dword [ebp - 0x74]
mov eax, edx
sub eax, dword [ebp - 0xd8]
sar eax, 8
mov byte [edx + 1], al
mov edx, dword [ebp - 0x74]
mov al, dl
sub al, byte [ebp - 0xd8]
mov byte [edx + 2], al
mov edx, dword [ebp - 0x74]
lea eax, [edx + 3]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x70]
and eax, 7
cmp eax, dword [ebp - 0xd4]
je 0x43849d
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x29
jne 0x43849d
mov byte [edx + 3], 0x19
mov edx, dword [ebp - 0x74]
mov cl, byte [ebp - 0xd4]
lea eax, [edx + 1]
mov dword [ebp - 0x74], eax
mov byte [edx + 1], cl
inc dword [ebp - 0x74]
add dword [ebp - 0x84], 2
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x2c]
mov dword [edi], eax
mov esi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xe8]
mov dword [edx], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0x34], esi
mov ebx, dword [ebp - 0xec]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp dword [ebp + 0x30], 0
mov dword [eax], ebx
je 0x438500
mov esi, dword [ebp + 0x30]
mov eax, 0x7fffffeb
mov edx, dword [ebp - 0x84]
mov ecx, dword [esi]
sub eax, ecx
cmp eax, edx
jge 0x4384f8
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x14
xor eax, eax
jmp 0x438562
lea eax, [ecx + edx]
mov edx, dword [ebp + 0x30]
mov dword [edx], eax
mov eax, 1
jmp 0x438562
cmp dword [ebp + 0x30], 0
je 0x438521
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x84], 3
add eax, dword [ecx]
add eax, 3
jmp 0x438557
mov eax, dword [ebp - 0x74]
mov byte [eax], 0x54
mov edx, dword [ebp - 0x74]
mov eax, edx
sub eax, dword [ebp - 0xdc]
sar eax, 8
mov byte [edx + 1], al
mov edx, dword [ebp - 0x74]
mov al, dl
sub al, byte [ebp - 0xdc]
mov byte [edx + 2], al
mov ebx, dword [ebp - 0x74]
mov eax, ebx
mov dword [ebp - 0xdc], ebx
add eax, 3
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x74], eax
inc dword [ebp - 0x78]
jmp 0x43459f
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret