Function at 0x45c707
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 0x45c7a0
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 0x45c7e1
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 0x45c811
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 0x45c842
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 0x45c85e
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 0x45cb12
jmp 0x45cb08
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x34
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x14
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x34
jmp 0x4604f3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x1f
jmp 0x4604f3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1e
jmp 0x4604f3
mov edx, dword [ebp + 0x10]
mov dword [edx], 7
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 8
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 9
jmp 0x4604f3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x37
jmp 0x4604f3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x3b
jmp 0x4604f3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3c
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x1e4]
mov dword [ebp - 0x8c], edx
mov dword [ecx], 0x1c
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x3a
jmp 0x4604f3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x27
jmp 0x4604f3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x26
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x29
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x2a
jmp 0x4604f3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x31
jmp 0x4604f3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x2b
jmp 0x4604f3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3e
jmp 0x4604f3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x2a
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x30
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0xf
jmp 0x4604f3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x1d
jmp 0x4604f3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x3a
jmp 0x4604f3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3a
jmp 0x4604f3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0xf
jmp 0x4604f3
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x36
jmp 0x4604f3
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x1b
jmp 0x4604f3
mov esi, dword [ebp + 0x10]
mov dword [esi], 0xe
jmp 0x4604f3
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x14
jmp 0x4604f3
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 0x45cbe2
add eax, 0x1000
cmp dword [ebp - 0x130], eax
ja 0x45c94a
mov ecx, dword [ebp - 0x134]
cmp dword [ebp - 0x130], ecx
jae 0x45cb53
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 0x45c958
lea eax, [ecx + edx]
mov dword [ebx], eax
cmp dword [ebp - 0x144], 0
je 0x45cbc8
mov edi, dword [ebp - 0x138]
cmp dword [ebp - 0x144], edi
jbe 0x45cbd4
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 0x45cbd4
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x134], ecx
jmp 0x45cbf3
mov ebx, dword [ebp + 0x2c]
add eax, 0x1000
cmp dword [ebx + 0x24], eax
ja 0x45c966
cmp dword [ebp - 0x13c], 0
setne dl
xor eax, eax
test esi, esi
setne al
test edx, eax
je 0x45cc96
cmp esi, 0x5c
jne 0x45cc2d
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x45
jne 0x45cc2d
inc eax
mov dword [ebp - 0x13c], 0
jmp 0x460032
cmp dword [ebp - 0x148], 0
je 0x45cc5e
cmp dword [ebp - 0xf8], 0
jne 0x45cc54
push dword [ebp + 0x2c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x148]
call fcn.0045bf9a
pop edi
mov dword [ebp - 0x148], 0
test dword [ebp - 0x128], 0x4000
je 0x460370
push dword [ebp + 0x2c]
mov edi, dword [ebp - 0x130]
mov edx, dword [ebp - 0x8c]
mov eax, edi
mov dword [ebp - 0x148], edi
call fcn.0045bf6d
pop ebx
mov dword [ebp - 0x130], eax
jmp 0x460370
lea eax, [esi - 0x2a]
xor edi, edi
cmp eax, 1
setbe dl
cmp esi, 0x3f
sete al
or eax, edx
test al, 1
jne 0x45cd0d
cmp esi, 0x7b
jne 0x45cd12
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx + 1]
lea ecx, [edx + 2]
test byte [eax + 0x64dd40], 4
je 0x45cd12
movzx eax, byte [edx + 2]
test byte [eax + 0x64dd40], 4
je 0x45ccdb
inc ecx
movzx eax, byte [ecx]
jmp 0x45cccc
mov al, byte [ecx]
cmp al, 0x7d
je 0x45cd0d
inc ecx
cmp al, 0x2c
jne 0x45cd12
mov al, byte [ecx]
cmp al, 0x7d
je 0x45cd0d
movzx eax, al
inc ecx
test byte [eax + 0x64dd40], 4
je 0x45cd12
movzx eax, byte [ecx]
test byte [eax + 0x64dd40], 4
je 0x45cd08
inc ecx
jmp 0x45ccf9
cmp byte [ecx], 0x7d
jne 0x45cd12
mov edi, 1
test edi, edi
sete dl
xor eax, eax
cmp dword [ebp - 0x148], 0
setne al
test edx, eax
je 0x45cd5f
mov eax, dword [ebp - 0x12c]
dec dword [ebp - 0x12c]
test eax, eax
jg 0x45cd5f
cmp dword [ebp - 0xf8], 0
jne 0x45cd55
push dword [ebp + 0x2c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x148]
call fcn.0045bf9a
pop ecx
mov dword [ebp - 0x148], 0
test byte [ebp - 0x128], 8
je 0x45ce0f
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + 0xc]
test byte [esi + eax], 1
jne 0x4604e8
cmp esi, 0x23
jne 0x45ce0f
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
cmp byte [edx + 1], 0
je 0x45ce0d
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 0x45cdd1
cmp ecx, edx
jae 0x45cd85
push dword [ebp - 0x154]
mov eax, esi
add eax, 0x5c
push eax
push edx
push ebx
push ecx
call fcn.0046b280
add esp, 0x14
test eax, eax
jne 0x45cdf1
jmp 0x45cd85
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + 0x5c]
sub edx, ebx
cmp ecx, edx
ja 0x45cd85
mov edx, eax
mov al, byte [eax + 0x60]
cmp byte [ecx], al
jne 0x45cd85
dec ebx
je 0x45cdf1
mov al, byte [edx + 0x61]
cmp byte [ecx + 1], al
jne 0x45cd85
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 0x4604e8
xor esi, esi
xor eax, eax
mov edx, dword [ebp - 0x128]
shr edx, 0xe
test edi, edi
sete al
test eax, edx
je 0x45ce46
push dword [ebp + 0x2c]
mov ebx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x8c]
mov eax, ebx
mov dword [ebp - 0x148], ebx
call fcn.0045bf6d
pop edx
mov dword [ebp - 0x130], eax
cmp esi, 0x3f
je 0x45e1ad
jg 0x45ce92
cmp esi, 0x29
je 0x45ced2
jg 0x45ce75
cmp esi, 0x24
je 0x45cf6a
jg 0x45ce67
test esi, esi
jmp 0x45cecc
cmp esi, 0x28
je 0x45ee85
jmp 0x460370
cmp esi, 0x2b
je 0x45e197
jl 0x45e18b
cmp esi, 0x2e
je 0x45cf82
jmp 0x460370
cmp esi, 0x5d
je 0x45cfda
jg 0x45ceb4
cmp esi, 0x5b
je 0x45cff5
cmp esi, 0x5c
je 0x45ffd7
jmp 0x460370
cmp esi, 0x7b
je 0x45e0cb
jg 0x45cec9
cmp esi, 0x5e
je 0x45cf36
jmp 0x460370
cmp esi, 0x7c
jne 0x460370
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 0x460506
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 0x45e9cf
lea eax, [ecx + edx]
mov ecx, dword [ebp - 0xf8]
mov dword [ecx], eax
jmp 0x460506
test byte [ebp - 0x128], 2
je 0x45cf52
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x45cf52
mov dword [ebp - 0x110], 0xffffffff
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x144], 0
mov byte [ebx], 0x1a
jmp 0x4602f6
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0x144], 0
mov byte [esi], 0x1b
jmp 0x46032c
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x45cf95
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 0x4604e8
mov ecx, dword [ebp + 0x2c]
test byte [ecx + 0x47], 2
je 0x460370
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x40
jmp 0x4604f3
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 0x45d021
cmp cl, 0x3d
jne 0x45d053
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.0045bded
test eax, eax
je 0x45d053
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 0x4604f3
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 0x45d0a2
cmp byte [eax + 1], 0x45
jne 0x45d080
lea eax, [ebx + 2]
jmp 0x45d09a
lea eax, [ebx + 2]
push 3
push 0x64e9ec
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x45d113
lea eax, [ebx + 4]
mov dword [ebp - 0x8c], eax
jmp 0x45d05d
cmp dword [ebp - 0x15c], 0
sete dl
xor eax, eax
cmp esi, 0x5e
sete al
test edx, eax
je 0x45d0c4
mov dword [ebp - 0x15c], 1
jmp 0x45d05d
cmp esi, 0x5d
jne 0x45d113
mov eax, dword [ebp + 0x2c]
test byte [eax + 0x47], 2
je 0x45d113
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 0x45d102
mov dword [ebp - 0x110], 0xffffffff
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x11c], edx
jmp 0x4604e8
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 0x45deb1
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x45d1da
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x188], edx
movzx esi, byte [edx]
cmp esi, 0xbf
jle 0x45d1da
mov eax, esi
mov ebx, 1
and eax, 0x3f
movzx edx, byte [eax + 0x64f790]
imul ecx, edx, 6
and esi, dword [edx*4 + 0x64f7d0]
mov dword [ebp - 0x1e8], ecx
shl esi, cl
cmp ebx, edx
jg 0x45d1d4
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 0x45d1af
add dword [ebp - 0x8c], edx
cmp dword [ebp - 0xf8], 0
je 0x45d1f7
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 0x45d230
cmp esi, 0x5c
jne 0x45d91e
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x45
jne 0x45d91e
inc eax
mov dword [ebp - 0x13c], 0
jmp 0x45d49c
mov edx, ebx
jmp 0x45d33e
cmp esi, 0x5b
jne 0x45d41f
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 0x45d25d
cmp cl, 0x3d
jne 0x45d91e
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.0045bded
test eax, eax
je 0x45d91e
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 0x45c974
lea eax, [edx + 2]
mov dword [ebp - 0x8c], eax
cmp byte [edx + 2], 0x5e
jne 0x45d2c4
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 [0x64df68], 0
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x198], str.alpha
je 0x45d33b
movzx edx, byte [ebx + 0x64df68]
mov dword [ebp - 0x19c], edx
cmp esi, edx
jne 0x45d31b
push esi
push dword [ebp - 0x198]
push dword [ebp - 0x194]
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x45d229
inc ebx
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x19c]
cmp byte [ebx + 0x64df68], 0
lea ecx, [ecx + eax + 1]
mov dword [ebp - 0x198], ecx
jmp 0x45d2eb
or edx, 0xffffffff
test edx, edx
js 0x45c982
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 + 0x64dec0]
push eax
push edx
call fcn.00478620
mov eax, dword [ebx*4 + 0x64dec4]
add esp, 0xc
mov ecx, dword [ebx*4 + 0x64dec8]
test eax, eax
js 0x45d3c4
test ecx, ecx
js 0x45d3ab
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 0x45d39c
jmp 0x45d3c4
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 0x45d3b5
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
cmp ecx, 1
jne 0x45d3d8
and byte [ebp - 0x5b], 0xc3
jmp 0x45d3e1
cmp ecx, 2
jne 0x45d3e1
and byte [ebp - 0x51], 0x7f
xor esi, esi
cmp dword [ebp - 0x18c], 0
je 0x45d3fe
mov al, byte [esi + ebp - 0x5c]
not eax
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d3ec
jmp 0x45d40c
mov al, byte [esi + ebp - 0x5c]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d3fe
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x170], 0xa
inc eax
jmp 0x45d49c
cmp esi, 0x5c
jne 0x45d91e
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.0045af30
add esp, 0xc
mov esi, eax
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
jne 0x4604f3
cmp esi, 0xfffffffb
jne 0x45d464
mov esi, 8
jmp 0x45d91e
cmp esi, 0xffffffea
jne 0x45d473
mov esi, 0x58
jmp 0x45d91e
cmp esi, 0xffffffef
jne 0x45d482
mov esi, 0x52
jmp 0x45d91e
cmp esi, 0xffffffe6
jne 0x45d4b6
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x5c
jne 0x45d4a7
cmp byte [eax + 2], 0x45
jne 0x45d4a7
add eax, 2
mov dword [ebp - 0x8c], eax
jmp 0x45de7e
mov dword [ebp - 0x13c], 1
jmp 0x45de7e
cmp esi, 0xffffffe7
je 0x45de7e
test esi, esi
jns 0x45d91e
mov ecx, dword [ebp + 0x2c]
add dword [ebp - 0x170], 2
mov edx, dword [ecx + 8]
cmp dword [ebp - 0xf8], 0
jne 0x45d5a6
mov eax, esi
neg eax
sub eax, 6
cmp eax, 5
ja case.default.0x45d4f1
jmp dword [eax*4 + 0x64ec50]
xor esi, esi
mov al, byte [edx + esi + 0x40]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d4fa
jmp 0x45de7e
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 0x45d519
jmp 0x45de7e
xor esi, esi
mov al, byte [edx + esi + 0xa0]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d530
jmp 0x45de7e
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 0x45d552
jmp 0x45de7e
xor esi, esi
mov al, byte [esi + edx]
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d56c
and byte [ebp - 0x2b], 0xf7
jmp 0x45de7e
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 0x45d58e
or byte [ebp - 0x2b], 8
jmp 0x45de7e
lea eax, [esi + 7]
cmp eax, 1
setbe dl
cmp esi, 0xfffffff5
sete al
or eax, edx
test al, 1
jne 0x45de7e
cmp esi, 0xfffffff6
sete dl
cmp esi, 0xfffffff7
sete al
or eax, edx
test al, 1
jne 0x45de7e
cmp esi, 0xfffffff8
je 0x45de7e
cmp esi, 0xffffffed
jne 0x45d687
or byte [ebp - 0x2b], 2
or byte [ebp - 0x28], 1
or byte [ebp - 0x18], 1
cmp dword [ebp - 0x154], 0
je 0x45de7e
mov dword [ebp - 0x150], 1
mov byte [edi], 1
inc edi
push edi
push 0x1680
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
mov byte [edi], 1
inc edi
push edi
push 0x180e
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2000
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x200a
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 1
inc edi
push edi
push 0x202f
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
mov byte [edi], 1
inc edi
push edi
push 0x205f
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 1
inc edi
push edi
push 0x3000
jmp 0x45de10
cmp esi, 0xffffffee
jne 0x45d7b4
xor esi, esi
mov eax, 0xff
cmp esi, 4
je 0x45d6b3
jg 0x45d6a5
cmp esi, 1
je 0x45d6ac
jmp 0x45d6b8
cmp esi, 0x14
je 0x45d6b3
jmp 0x45d6b8
mov eax, 0xfd
jmp 0x45d6b8
mov eax, 0xfe
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d692
cmp dword [ebp - 0x154], 0
je 0x45de7e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x100
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x167f
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x1681
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x180d
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x180f
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x1fff
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x200b
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x202e
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2030
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x205e
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x2060
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x2fff
call fcn.0046b230
pop esi
add edi, eax
pop edx
mov byte [edi], 2
inc edi
push edi
push 0x3001
jmp 0x45d86b
cmp esi, 0xffffffeb
jne 0x45d7f6
or byte [ebp - 0x2b], 0x3c
or byte [ebp - 0x1c], 0x20
cmp dword [ebp - 0x154], 0
je 0x45de7e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x2028
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
push edi
push 0x2029
jmp 0x45de10
cmp esi, 0xffffffec
jne 0x45d87f
xor esi, esi
mov eax, 0xff
cmp esi, 1
je 0x45d812
cmp esi, 0x10
je 0x45d819
jmp 0x45d81e
mov eax, 0xc3
jmp 0x45d81e
mov eax, 0xdf
or byte [esi + ebp - 0x2c], al
inc esi
cmp esi, 0x1f
jle 0x45d801
cmp dword [ebp - 0x154], 0
je 0x45de7e
mov dword [ebp - 0x150], 1
mov byte [edi], 2
inc edi
push edi
push 0x100
call fcn.0046b230
pop esi
add edi, eax
pop edx
push edi
push 0x2027
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
mov byte [edi], 2
inc edi
push edi
push 0x2029
call fcn.0046b230
pop esi
add edi, eax
pop edx
push edi
push 0x7fffffff
jmp 0x45de10
lea eax, [esi + 0x10]
cmp eax, 1
ja 0x45d901
push dword [ebp + 0x10]
lea eax, [ebp - 0x90]
lea edx, [ebp - 0x94]
push eax
lea eax, [ebp - 0x8c]
call fcn.0045b369
pop ecx
test eax, eax
pop ebx
js 0x4604f3
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 0x45d8d7
dec edx
jmp 0x45d8d9
test edx, edx
je 0x45d8df
mov dl, 3
jmp 0x45d8e1
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 0x45de7e
test byte [ebp - 0x128], 0x40
jne 0x45c990
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 0x45d951
cmp byte [edx + 2], 0x45
jne 0x45d951
lea eax, [edx + 2]
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x8c], eax
mov edx, eax
cmp byte [eax + 1], 0x5c
jne 0x45d951
cmp byte [eax + 2], 0x45
jmp 0x45d92e
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 0x45d976
mov edx, dword [ebp + 0x2c]
or dword [edx + 0x48], 0x20
cmp dword [ebp - 0x13c], 0
jne 0x45dd95
mov ecx, dword [ebp - 0x184]
cmp byte [ecx + 1], 0x2d
jne 0x45dd95
mov eax, ecx
add eax, 2
mov dword [ebp - 0x8c], eax
cmp byte [ecx + 2], 0x5c
jne 0x45d9c2
cmp byte [eax + 1], 0x45
jne 0x45d9c2
add eax, 2
mov dword [ebp - 0x8c], eax
add eax, 2
cmp byte [eax - 2], 0x5c
jne 0x45d9c2
cmp byte [eax - 1], 0x45
je 0x45d9ad
mov edx, dword [ebp - 0x8c]
cmp byte [edx], 0x5c
jne 0x45da0b
cmp byte [edx + 1], 0x51
jne 0x45da0b
lea ecx, [edx + 2]
mov dword [ebp - 0x8c], ecx
cmp byte [edx + 2], 0x5c
jne 0x45d9e8
cmp byte [ecx + 1], 0x45
je 0x45d9f4
mov dword [ebp - 0x13c], 1
jmp 0x45da0b
lea eax, [edx + 4]
mov dword [ebp - 0x8c], eax
mov edx, eax
cmp byte [ecx + 2], 0x5c
jne 0x45da0b
cmp byte [eax + 1], 0x51
jmp 0x45d9d1
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x1a0], ebx
mov al, byte [ebx]
test al, al
je 0x45da2a
cmp dword [ebp - 0x13c], 0
jne 0x45da3b
cmp al, 0x5d
jne 0x45da3b
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x8c], eax
jmp 0x45dd95
cmp dword [ebp - 0x154], 0
je 0x45dab9
mov edx, dword [ebp - 0x1a0]
movzx ebx, byte [edx]
cmp ebx, 0xbf
jle 0x45dac2
mov eax, ebx
mov dword [ebp - 0x1a4], 1
and eax, 0x3f
movzx edx, byte [eax + 0x64f790]
imul ecx, edx, 6
and ebx, dword [edx*4 + 0x64f7d0]
mov dword [ebp - 0x1e8], ecx
shl ebx, cl
cmp dword [ebp - 0x1a4], edx
jg 0x45dab1
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 0x45da7d
add dword [ebp - 0x8c], edx
jmp 0x45dac2
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 0x45db3e
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.0045af30
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov ebx, eax
cmp dword [ecx], 0
jne 0x4604f3
test eax, eax
jns 0x45db3e
cmp eax, 0xfffffffb
jne 0x45db15
mov ebx, 8
jmp 0x45db3e
cmp eax, 0xffffffea
jne 0x45db21
mov ebx, 0x58
jmp 0x45db3e
cmp eax, 0xffffffef
jne 0x45db2d
mov ebx, 0x52
jmp 0x45db3e
mov ebx, dword [ebp - 0x184]
mov dword [ebp - 0x8c], ebx
jmp 0x45dd95
cmp ebx, esi
jl 0x45c99e
je 0x45dd95
cmp ebx, 0xd
sete dl
cmp ebx, 0xa
sete al
or eax, edx
test al, 1
je 0x45db65
mov eax, dword [ebp + 0x2c]
or dword [eax + 0x48], 0x20
cmp dword [ebp - 0x154], 0
je 0x45dcef
cmp ebx, 0xff
jg 0x45db8e
xor eax, eax
cmp ebx, 0x7f
setg al
test dword [ebp - 0x128], eax
je 0x45dcef
mov dword [ebp - 0x150], 1
test byte [ebp - 0x128], 1
je 0x45dcd9
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x1a8], ebx
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebp - 0x1a8]
ja 0x45dcd9
mov eax, ecx
mov edx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x6596b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x64f8b0]
mov edx, dword [eax*8 + 0x65b8b4]
lea eax, [ecx + edx]
cmp eax, ecx
jne 0x45dbf2
inc ecx
jmp 0x45dbb7
cmp ecx, dword [ebp - 0x1a8]
ja 0x45dcd9
mov dword [ebp - 0x9c], eax
inc eax
mov dword [ebp - 0x1ac], eax
inc ecx
cmp ecx, dword [ebp - 0x1a8]
ja 0x45dc4c
mov eax, ecx
mov edx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x6596b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x64f8b0]
mov edx, dword [eax*8 + 0x65b8b4]
lea eax, [ecx + edx]
cmp eax, dword [ebp - 0x1ac]
jne 0x45dc4c
inc dword [ebp - 0x1ac]
jmp 0x45dc0b
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 0x45dc73
cmp eax, ebx
jbe 0x45dbb1
jmp 0x45dc85
lea eax, [esi - 1]
cmp dword [ebp - 0xa0], eax
jb 0x45dc85
mov esi, ecx
jmp 0x45dbb1
mov edx, dword [ebp - 0xa0]
cmp edx, ebx
jbe 0x45dc9d
lea eax, [ebx + 1]
cmp ecx, eax
ja 0x45dc9d
mov ebx, edx
jmp 0x45dbb1
cmp dword [ebp - 0x9c], edx
lea ecx, [edi + 1]
jne 0x45dcaf
mov byte [edi], 1
mov edi, ecx
jmp 0x45dcc4
mov byte [edi], 2
push ecx
push dword [ebp - 0x9c]
mov edi, ecx
call fcn.0046b230
pop ecx
add edi, eax
pop edx
push edi
push dword [ebp - 0xa0]
call fcn.0046b230
pop ecx
add edi, eax
pop edx
jmp 0x45dbb1
mov byte [edi], 2
inc edi
push edi
push esi
call fcn.0046b230
pop esi
add edi, eax
pop edx
push edi
push ebx
jmp 0x45de10
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 0x45de7e
cmp esi, ebx
jg 0x45de7e
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 0x45dd92
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 0x45dd16
cmp dword [ebp - 0x154], 0
je 0x45de1b
cmp esi, 0xff
jg 0x45ddb6
xor eax, eax
cmp esi, 0x7f
setg al
test dword [ebp - 0x128], eax
je 0x45de1b
mov dword [ebp - 0x150], 1
mov byte [edi], 1
inc edi
push edi
push esi
call fcn.0046b230
pop edx
add edi, eax
pop ecx
test byte [ebp - 0x128], 1
je 0x45de7e
mov edx, pe_nt_image_headers32
mov eax, esi
mov ebx, edx
cdq
idiv ebx
movzx eax, byte [eax + 0x6596b0]
shl eax, 7
add eax, edx
movzx eax, word [eax + eax + 0x64f8b0]
mov edx, dword [eax*8 + 0x65b8b4]
lea eax, [esi + edx]
cmp eax, esi
je 0x45de7e
mov byte [edi], 1
inc edi
push edi
push eax
call fcn.0046b230
pop ecx
add edi, eax
pop ebx
jmp 0x45de7e
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 0x45de72
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 0x45deb1
cmp esi, 0x5d
setne dl
cmp dword [ebp - 0x13c], 0
setne al
or eax, edx
test al, 1
jne 0x45d15f
jmp 0x45debf
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 6
jmp 0x4604f3
cmp dword [ebp - 0x170], 1
sete dl
xor eax, eax
cmp dword [ebp - 0x150], 0
sete al
test edx, eax
je 0x45df93
cmp dword [ebp - 0x154], 0
sete dl
cmp dword [ebp - 0x15c], 0
sete al
or eax, edx
test al, 1
jne 0x45df04
cmp dword [ebp - 0x174], 0x7f
jg 0x45df93
mov ebx, dword [ebp - 0x114]
mov dword [ebp - 0x118], ebx
cmp dword [ebp - 0x15c], 0
je 0x45df56
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x45df2c
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 0x4604e8
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp dword [ebp - 0x174], 0x7f
setg al
test edx, eax
je 0x45df82
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x174]
jmp 0x460356
mov dl, byte [ebp - 0x174]
mov byte [ebp - 0xa8], dl
jmp 0x460369
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x45dfa6
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 0x45e06a
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 0x45e038
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.00478620
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 0x4604e8
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 0x45e0af
cmp dword [ebp - 0xf8], 0
jne 0x45e0c3
xor esi, esi
mov al, byte [esi + ebp - 0x2c]
not eax
mov byte [esi + ebx], al
inc esi
cmp esi, 0x1f
jle 0x45e09e
jmp 0x45e0c3
lea eax, [ebp - 0x2c]
push 0x20
push eax
push dword [ebp - 0x130]
call fcn.00478620
add esp, 0xc
add ebx, 0x20
jmp 0x4602f7
test edi, edi
je 0x460370
mov eax, dword [ebp - 0x8c]
xor esi, esi
or ebx, 0xffffffff
lea ecx, [eax + 1]
movzx eax, byte [eax + 1]
test byte [eax + 0x64dd40], 4
je 0x45e118
imul eax, esi, 0xa
movzx edx, byte [ecx]
inc ecx
lea esi, [eax + edx - 0x30]
movzx eax, byte [ecx]
test byte [eax + 0x64dd40], 4
jne 0x45e0ee
cmp esi, 0xffff
jbe 0x45e118
mov edx, dword [ebp + 0x10]
mov dword [edx], 5
jmp 0x45e178
cmp byte [ecx], 0x7d
jne 0x45e121
mov ebx, esi
jmp 0x45e16c
inc ecx
mov al, byte [ecx]
cmp al, 0x7d
je 0x45e16c
movzx edx, al
xor ebx, ebx
test byte [edx + 0x64dd40], 4
je 0x45e15d
imul eax, ebx, 0xa
inc ecx
lea ebx, [eax + edx - 0x30]
movzx edx, byte [ecx]
test byte [edx + 0x64dd40], 4
jne 0x45e136
cmp ebx, 0xffff
jbe 0x45e15d
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 5
jmp 0x45e178
cmp ebx, esi
jge 0x45e16c
mov esi, dword [ebp + 0x10]
mov dword [esi], 4
jmp 0x45e178
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 0x45e1c1
jmp 0x4604f3
mov dword [ebp - 0xac], 0
jmp 0x45e1a1
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xb0], 0xffffffff
jmp 0x45e1c1
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb0], 1
cmp dword [ebp - 0x144], 0
je 0x45c9ac
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x45e1f0
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 0x45e24d
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x164], 1
jmp 0x45e26a
mov esi, dword [ebp - 0x108]
cmp dl, 0x3f
mov dword [ebp - 0xfc], esi
jne 0x45e271
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 0x45e333
cmp dword [ebp - 0x154], 0
je 0x45e2cb
mov esi, dword [ebp - 0x130]
mov al, byte [esi - 1]
test al, al
jns 0x45e2cb
mov edx, esi
dec edx
and eax, 0xc0
add eax, 0xffffff80
jne 0x45e2ad
dec edx
movzx eax, byte [edx]
jmp 0x45e29d
mov esi, dword [ebp - 0x130]
lea eax, [ebp - 0x3c]
sub esi, edx
push esi
push edx
push eax
call fcn.00478620
or esi, 0x80
add esp, 0xc
jmp 0x45e2ee
mov edi, dword [ebp - 0x130]
dec ebx
movzx esi, byte [edi - 1]
jle 0x45e2ee
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 0x45e3e3
cmp dword [ebp - 0xb0], 0
jns 0x45e3e3
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 0x45e3c3
cmp dl, 0x1e
jne 0x45e383
mov ebx, dword [ebp - 0x144]
mov dword [ebp - 0x100], 0xd
cmp dword [ebp - 0x164], 0
movzx esi, byte [ebx + 1]
jne 0x45e3e3
test edi, edi
jns 0x45e3e3
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 0x45e3c3
cmp dl, 0x16
ja 0x45e702
mov dword [ebp - 0x100], 0x1a
movzx esi, dl
cmp dword [ebp - 0x164], 0
jne 0x45e3e3
test edi, edi
jns 0x45e3e3
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.0045bfc1
add esp, 0x14
test eax, eax
je 0x45e3e3
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 0x45e413
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 0x45ee6a
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0xac]
test edx, edx
jne 0x45e4a6
cmp eax, 0xffffffff
jne 0x45e459
mov al, byte [ebp - 0xfc]
add eax, 0x1f
jmp 0x45e4bd
mov ecx, dword [ebp - 0x130]
dec eax
lea ebx, [ecx + 1]
jne 0x45e475
mov al, byte [ebp - 0xfc]
add eax, 0x23
mov byte [ecx], al
jmp 0x45e695
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 0x45e4f7
dec edx
jne 0x45e502
cmp eax, 0xffffffff
jne 0x45e4c5
mov al, byte [ebp - 0xfc]
mov ebx, dword [ebp - 0x130]
add eax, 0x21
mov byte [ebx], al
inc ebx
jmp 0x45e695
mov dword [ebp - 0x130], ecx
dec eax
je 0x45ee6a
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 0x45e69b
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 0x45e5c8
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x45e576
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push ecx
call fcn.00478620
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x45e5ab
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 0x45e5ab
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 0x45e69b
cmp eax, dword [ebp - 0xac]
je 0x45e69b
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x45e60a
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push dword [ebp - 0x130]
call fcn.00478620
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x45e61e
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 0x45e63c
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 0x45e66d
mov al, byte [ebp - 0xfc]
mov edx, dword [ebp - 0x130]
add eax, 0x23
mov byte [edx], al
jmp 0x45e695
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 0x45e6d1
mov ebx, esi
lea eax, [ebp - 0x3c]
and ebx, 7
push ebx
push eax
push dword [ebp - 0x130]
call fcn.00478620
add dword [ebp - 0x130], ebx
add esp, 0xc
jmp 0x45e6e2
mov eax, dword [ebp - 0x130]
mov ebx, esi
mov byte [eax], bl
inc eax
mov dword [ebp - 0x130], eax
test edi, edi
js 0x45ed1c
mov ecx, dword [ebp - 0x130]
mov edx, edi
mov byte [ecx], dl
inc ecx
mov bl, byte [ebp - 0x1b8]
mov byte [ecx], bl
jmp 0x45e789
lea eax, [edx - 0x4e]
cmp al, 3
ja 0x45e7ff
test edi, edi
jne 0x45e722
mov esi, dword [ebp - 0x144]
mov dword [ebp - 0x130], esi
jmp 0x45ee6a
test ebx, ebx
jne 0x45e746
inc edi
jne 0x45e76f
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 0x45ed1c
cmp ebx, 1
jne 0x45e76b
inc edi
jne 0x45e795
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 0x45ed1c
test ebx, ebx
jne 0x45e795
cmp dword [ebp - 0xb0], 1
jne 0x45e795
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 0x45ed1c
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 0x45e7d7
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 0x45ed1c
lea eax, [edx - 0x5d]
cmp al, 3
ja 0x45ed05
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 0x45e845
mov edx, dword [ebp - 0x144]
cmp byte [edx + 3], 0x68
je 0x45c9ba
cmp edi, 0xffffffff
jne 0x45e872
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 0x45e850
mov esi, dword [ebp - 0x130]
sub esi, ecx
mov dword [ebp - 0x1bc], esi
test ebx, ebx
jne 0x45e982
dec edi
mov edi, dword [ebp - 0x144]
lea ebx, [edi + 1]
jg 0x45e8f0
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.0045be2d
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 0x45e8d4
mov byte [edi], 0x72
jmp 0x45ee6a
mov al, byte [ebp - 0xfc]
mov edx, dword [ebp - 0x144]
add eax, 0x69
mov byte [edx], al
mov dword [ebp - 0x144], ebx
jmp 0x45e977
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.0045be2d
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 0x45eab9
cmp ebx, 1
jle 0x45eaa3
cmp dword [ebp - 0xf8], 0
je 0x45e9ed
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 [0x64ec48]
fnstsw ax
sahf
ja 0x45e9cf
mov ebx, dword [ebp - 0xf8]
mov eax, 0x7fffffeb
mov edx, dword [ebx]
sub eax, edx
cmp eax, ecx
jge 0x45e9dd
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x14
jmp 0x4604f3
mov edi, dword [ebp - 0xf8]
lea eax, [edx + ecx]
mov dword [edi], eax
jmp 0x45eaa3
mov eax, dword [ebp - 0x114]
cmp dword [ebp - 0x140], 0
setne dl
shr eax, 0x1f
test edx, eax
je 0x45ea10
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x114], eax
mov edi, 1
cmp edi, ebx
jge 0x45eaa3
mov edx, dword [ebp + 0x2c]
mov esi, dword [edx + 0x24]
push dword [ebp - 0x1c0]
push dword [ebp - 0x144]
push dword [ebp - 0x130]
call fcn.00478620
add esp, 0xc
mov ebx, dword [ebp - 0x14c]
cmp ebx, esi
jae 0x45ea85
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 0x45ea43
mov ebx, dword [ebp - 0x1c0]
inc edi
add dword [ebp - 0x130], ebx
mov dword [ebp - 0x14c], esi
cmp edi, dword [ebp - 0xac]
jmp 0x45ea17
mov eax, dword [ebp - 0xb0]
test eax, eax
jle 0x45eab9
sub eax, dword [ebp - 0xac]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
js 0x45eca3
cmp dword [ebp - 0xf8], 0
je 0x45eb30
test ecx, ecx
jle 0x45eb30
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 [0x64ec48]
fnstsw ax
sahf
ja 0x45eb12
mov ecx, dword [ebp - 0xf8]
mov eax, 0x7fffffeb
mov edx, dword [ecx]
sub eax, edx
cmp eax, ebx
jge 0x45eb20
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x14
jmp 0x4604f3
mov esi, dword [ebp - 0xf8]
lea eax, [edx + ebx]
mov dword [esi], eax
jmp 0x45ec34
mov edi, ecx
dec edi
js 0x45ec34
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 0x45eba1
mov byte [edx], 0x5e
inc edx
mov dword [ebp - 0x130], edx
xor edx, edx
cmp dword [ebp - 0x1c4], 0
je 0x45eb7c
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.00478620
add esp, 0xc
mov ecx, dword [ebp - 0x14c]
cmp ecx, esi
jae 0x45ec1d
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 0x45ebe6
add eax, 4
jmp 0x45ebe7
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 0x45ec0d
add eax, 4
jmp 0x45ec0e
inc eax
mov byte [ebx + 1], al
add ecx, 2
mov ebx, dword [ebp + 0x2c]
add dword [ebx + 0x24], 2
jmp 0x45ebc1
mov dword [ebp - 0x14c], esi
mov esi, dword [ebp - 0x1c0]
add dword [ebp - 0x130], esi
jmp 0x45eb32
cmp dword [ebp - 0x1c4], 0
je 0x45ed1c
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 0x45ec6f
sub dword [ebp - 0x1c4], eax
jmp 0x45ec79
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 0x45ec34
add byte [edi], 3
jmp 0x45ed1c
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 0x45ed1c
cmp byte [edi], 0x5d
je 0x45ed1c
mov ebx, edi
push dword [ebp - 0x154]
mov edx, esi
mov eax, ebx
call fcn.0045bc59
pop edx
test eax, eax
jne 0x45ec9e
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
add ebx, eax
cmp byte [ebx], 0x54
je 0x45ecdb
jmp 0x45ed1c
cmp dl, 0x6f
je 0x45ee6a
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xb
jmp 0x4604f3
cmp dword [ebp - 0x164], 0
je 0x45ee6a
mov ebx, dword [ebp - 0xc8]
mov cl, byte [ebx]
cmp cl, 0x41
jne 0x45ed56
mov al, byte [ebx + 3]
sub eax, 0xf
cmp al, 1
mov al, byte [0x64f871]
ja 0x45ed4e
movzx eax, al
lea eax, [ebx + eax + 2]
jmp 0x45ed98
movzx eax, al
lea eax, [ebx + eax]
jmp 0x45ed98
cmp cl, 0x27
sete dl
cmp cl, 0x34
sete al
or eax, edx
test al, 1
je 0x45ed9e
movzx eax, cl
cmp dword [ebp - 0x154], 0
movzx eax, byte [eax + 0x64f830]
lea edx, [ebx + eax]
mov dword [ebp - 0xc8], edx
je 0x45ed9e
mov al, byte [edx - 1]
cmp al, 0xbf
jbe 0x45ed9e
and eax, 0x3f
movzx eax, byte [eax + 0x64f790]
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 0x45ee6a
movzx eax, byte [edx]
sub eax, 0x1f
cmp eax, 0x20
ja case.0x45edbf.32
jmp dword [eax*4 + 0x64ec68]
mov byte [edx], 0x28
jmp 0x45ee6a
mov byte [edx], 0x29
jmp 0x45ee6a
mov byte [edx], 0x2a
jmp 0x45ee6a
mov byte [edx], 0x2b
jmp 0x45ee6a
mov byte [edx], 0x42
jmp 0x45ee6a
mov byte [edx], 0x43
jmp 0x45ee6a
mov byte [edx], 0x44
jmp 0x45ee6a
mov byte [edx], 0x45
jmp 0x45ee6a
mov byte [edx], 0x35
jmp 0x45ee6a
mov byte [edx], 0x36
jmp 0x45ee6a
mov byte [edx], 0x37
jmp 0x45ee6a
mov byte [edx], 0x38
jmp 0x45ee6a
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 0x4604e8
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 0x45efdf
mov esi, dword [ebp + 0x2c]
movzx eax, byte [ecx + 1]
mov ebx, dword [esi + 0xc]
test byte [eax + ebx], 2
je 0x45efdf
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 0x45ef05
cmp dl, 0x3a
je 0x45c9c8
cmp dl, 0x29
jne 0x45c9d6
sub ecx, esi
xor edi, edi
mov dword [ebp - 0x1c8], ecx
mov ebx, dword [edi*8 + 0x64de40]
cmp dword [ebp - 0x1c8], ebx
jne 0x45efa1
push ebx
push dword [ebp - 0x1cc]
push esi
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x45efa1
mov ecx, dword [edi*8 + 0x64de44]
cmp ecx, 0x70
jne 0x45efb9
mov eax, dword [ebp + 0x2c]
mov dword [eax + 0x50], 1
mov edx, dword [eax + 0x20]
test edx, edx
je 0x45efb9
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 0x45ef78
mov eax, dword [ebp - 0x1cc]
inc edi
cmp edi, 6
lea ebx, [eax + ebx + 1]
mov dword [ebp - 0x1cc], ebx
jle 0x45ef3c
jmp 0x45efd1
mov edx, dword [ebp - 0x130]
mov byte [edx], cl
inc edx
mov dword [ebp - 0x130], edx
cmp edi, 6
jle 0x4604e8
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x3c
jmp 0x4604f3
cmp byte [ecx], 0x3f
jne 0x45fd4a
lea edx, [ecx + 1]
mov dword [ebp - 0x8c], edx
movzx eax, byte [ecx + 1]
cmp eax, 0x39
jg 0x45f05c
cmp eax, 0x30
jge 0x45f961
cmp eax, 0x27
je 0x45f625
jg 0x45f035
cmp eax, 0x23
je 0x45f0ba
jg 0x45f027
cmp eax, 0x21
je 0x45f491
jmp 0x45fb83
cmp eax, 0x26
je 0x45f834
jmp 0x45fb83
cmp eax, 0x2b
je 0x45f961
jg 0x45f04e
cmp eax, 0x28
je 0x45f124
jmp 0x45fb83
cmp eax, 0x2d
je 0x45f961
jmp 0x45fb83
cmp eax, 0x43
je 0x45f534
jg 0x45f097
cmp eax, 0x3c
je 0x45f4c3
jg 0x45f080
cmp eax, 0x3a
je 0x45f11c
jmp 0x45fb83
cmp eax, 0x3d
je 0x45f482
cmp eax, 0x3e
je 0x45f51c
jmp 0x45fb83
cmp eax, 0x52
je 0x45f958
jg 0x45f0b0
cmp eax, 0x50
je 0x45f5ec
jmp 0x45fb83
cmp eax, 0x7c
je 0x45f112
jmp 0x45fb83
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 0x45f0f5
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 0x45f0da
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0
jne 0x4604e8
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x12
jmp 0x4604f3
mov dword [ebp - 0x16c], 1
lea eax, [edx + 1]
jmp 0x45fd3b
mov dword [ebp - 0x104], 0x60
cmp byte [edx + 1], 0x3f
jne 0x45f156
mov cl, byte [edx + 2]
cmp cl, 0x3d
sete dl
cmp cl, 0x21
sete al
or eax, edx
test al, 1
jne 0x45fd88
cmp cl, 0x3c
je 0x45fd88
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 0x45f19e
cmp byte [ecx + 2], 0x26
jne 0x45f19e
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 0x45f1f1
mov al, byte [ecx + 1]
cmp al, 0x3c
jne 0x45f1b1
mov dword [ebp - 0x180], 0x3e
jmp 0x45f1bf
cmp al, 0x27
jne 0x45f1ca
mov dword [ebp - 0x180], 0x27
lea eax, [ecx + 1]
mov dword [ebp - 0x8c], eax
jmp 0x45f1f1
cmp al, 0x2d
mov dword [ebp - 0x180], 0
sete dl
cmp al, 0x2b
sete al
or eax, edx
test al, 1
je 0x45f1f1
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 0x45c9e4
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 0x45f255
test edi, edi
js 0x45f24a
movzx edx, byte [ebx]
test byte [edx + 0x64dd40], 4
je 0x45f247
imul eax, edi, 0xa
lea edi, [eax + edx - 0x30]
jmp 0x45f24a
or edi, 0xffffffff
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
jmp 0x45f21c
mov eax, dword [ebp - 0x8c]
mov edx, eax
sub edx, dword [ebp - 0x1e4]
cmp dword [ebp - 0x180], 0
mov dword [ebp - 0x1d0], edx
jle 0x45f284
movzx edx, byte [eax]
inc eax
cmp edx, dword [ebp - 0x180]
mov dword [ebp - 0x8c], eax
jne 0x45f298
mov edx, dword [ebp - 0x8c]
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
cmp byte [edx], 0x29
je 0x45f2ac
dec dword [ebp - 0x8c]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x1a
jmp 0x4604f3
cmp dword [ebp - 0xf8], 0
jne 0x45fd88
test esi, esi
jle 0x45f2f7
test edi, edi
jle 0x45c9fe
mov ebx, dword [ebp + 0x2c]
cmp esi, 0x2d
mov eax, dword [ebx + 0x34]
jne 0x45f2d7
sub eax, edi
lea edi, [eax + 1]
jmp 0x45f2d9
add edi, eax
test edi, edi
jle 0x45f2e9
mov esi, dword [ebp + 0x2c]
cmp edi, dword [esi + 0x38]
jle 0x45f460
mov edi, dword [ebp + 0x10]
mov dword [edi], 0xf
jmp 0x4604f3
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 0x45f33e
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 0x45f33e
mov edx, dword [ebp + 0x2c]
inc esi
add ebx, dword [edx + 0x30]
cmp esi, dword [ebp - 0x1dc]
jmp 0x45f311
mov ecx, dword [ebp + 0x2c]
cmp esi, dword [ecx + 0x2c]
jge 0x45f36d
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 0x45fd88
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.0045b781
pop edx
mov esi, eax
pop ecx
test eax, eax
jle 0x45f3a6
mov edx, dword [ebp - 0x130]
mov ecx, esi
sar eax, 8
inc byte [edx + 3]
jmp 0x45f40e
cmp dword [ebp - 0x180], 0
jne 0x45fa1f
mov ebx, dword [ebp - 0x1e4]
cmp byte [ebx], 0x52
jne 0x45f419
mov esi, 1
xor edi, edi
cmp esi, dword [ebp - 0x1d0]
jge 0x45f3f8
mov eax, dword [ebp - 0x1e4]
movzx edx, byte [esi + eax]
test byte [edx + 0x64dd40], 4
je 0x45f2e9
imul eax, edi, 0xa
inc esi
lea edi, [eax + edx - 0x30]
cmp esi, dword [ebp - 0x1d0]
jl 0x45f3cd
test edi, edi
jne 0x45f3fd
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 0x45fd88
cmp dword [ebp - 0x1d0], 6
jne 0x45f454
push 6
push str.DEFINE
push dword [ebp - 0x1e4]
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x45f454
mov ebx, dword [ebp - 0x130]
mov byte [ebx + 3], 0x68
mov dword [ebp - 0x17c], 1
jmp 0x45fd88
test edi, edi
jle 0x45f46d
mov esi, dword [ebp + 0x2c]
cmp edi, dword [esi + 0x38]
jg 0x45f46d
mov eax, edi
mov edx, dword [ebp - 0x130]
sar eax, 8
jmp 0x45f40c
cmp edi, 1
mov ebx, dword [ebp + 0x10]
sbb eax, eax
and eax, 0x14
add eax, 0xf
mov dword [ebx], eax
jmp 0x4604f3
lea eax, [ecx + 2]
mov dword [ebp - 0x104], 0x58
jmp 0x45f4de
lea eax, [ecx + 2]
mov dword [ebp - 0x104], 0x59
mov dword [ebp - 0x8c], eax
cmp byte [edx + 1], 0x29
jne 0x45fd96
mov esi, dword [ebp - 0x130]
mov byte [esi], 0x6f
inc esi
mov dword [ebp - 0x130], esi
jmp 0x45fd2b
movzx edx, byte [edx + 1]
cmp edx, 0x21
je 0x45f4e9
cmp edx, 0x3d
jne 0x45f4f5
mov dword [ebp - 0x104], 0x5a
lea eax, [ecx + 3]
mov dword [ebp - 0x8c], eax
jmp 0x45fd96
mov dword [ebp - 0x104], 0x5b
jmp 0x45f4db
mov edi, dword [ebp + 0x2c]
mov eax, dword [edi + 0xc]
test byte [edx + eax], 0x10
jne 0x45f625
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x18
jmp 0x4604f3
mov dword [ebp - 0x104], 0x5d
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
jmp 0x45fd88
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 + 0x64dd40], 4
je 0x45f593
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 + 0x64dd40], 4
jne 0x45f574
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x29
jne 0x45ca0c
cmp ebx, 0xff
jg 0x45ca1a
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 0x45fd2b
lea eax, [ecx + 2]
mov dword [ebp - 0x8c], eax
mov al, byte [edx + 1]
cmp al, 0x3d
je 0x45f600
cmp al, 0x3e
jne 0x45f61d
cmp al, 0x3e
mov dword [ebp - 0x180], 0x29
sete al
movzx eax, al
mov dword [ebp - 0x168], eax
jmp 0x45f848
cmp al, 0x3c
jne 0x45ca28
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 0x45f673
add edx, 2
mov dword [ebp - 0x8c], edx
inc edx
movzx eax, byte [edx - 1]
test byte [eax + ecx], 0x10
jne 0x45f662
mov eax, dword [ebp - 0x8c]
mov edx, eax
sub edx, dword [ebp - 0x1d4]
cmp dword [ebp - 0xf8], 0
mov dword [ebp - 0x1d0], edx
je 0x45f6f5
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x45ca36
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx + 0x2c], 0x270f
jg 0x45ca44
mov eax, edx
add eax, 3
cmp eax, dword [ecx + 0x30]
jle 0x45f823
mov dword [ecx + 0x30], eax
cmp edx, 0x20
jle 0x45f823
mov ebx, dword [ebp + 0x10]
mov dword [ebx], 0x30
jmp 0x4604f3
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 0x45f796
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 0x45f79f
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 0x45f77d
mov edi, dword [ebp - 0x1d0]
cmp byte [ebx + edi + 2], 0
jne 0x45f77a
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 0x45f76e
test dword [ebp - 0x128], 0x80000
je 0x45ca52
mov dword [ebp - 0x1d8], 1
jmp 0x45f77d
or ecx, 0xffffffff
mov eax, dword [ebp + 0x2c]
test ecx, ecx
mov edx, dword [eax + 0x30]
js 0x45f6d7
inc esi
add ebx, edx
cmp esi, dword [ebp - 0x1f8]
jl 0x45f71c
cmp dword [ebp - 0x1d8], 0
jne 0x45f7ed
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 0x45f7ed
cmp ecx, ebx
je 0x45f7dd
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 0x45f7de
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x41
jmp 0x4604f3
dec esi
mov edx, dword [ebp + 0x2c]
inc esi
add ecx, dword [edx + 0x30]
cmp esi, dword [ebp - 0x1f8]
jmp 0x45f7b2
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.00478620
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 0x45fd62
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 0x45f87b
add edx, 2
mov dword [ebp - 0x8c], edx
inc edx
movzx eax, byte [edx - 1]
test byte [eax + ecx], 0x10
jne 0x45f86a
mov eax, dword [ebp - 0x8c]
mov esi, eax
sub esi, edi
mov dword [ebp - 0x1d0], esi
cmp dword [ebp - 0xf8], 0
je 0x45f8bb
test esi, esi
je 0x45ca60
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x45ca6e
cmp esi, 0x20
jg 0x45ca7c
xor edi, edi
jmp 0x45f946
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 0x45f907
push dword [ebp - 0x1d0]
lea eax, [ebx + 2]
push eax
push edi
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x45f8f8
mov ecx, dword [ebp - 0x1d0]
cmp byte [ebx + ecx + 2], 0
je 0x45f907
mov eax, dword [ebp + 0x2c]
inc esi
add ebx, dword [eax + 0x30]
cmp esi, dword [ebp - 0x1e0]
jmp 0x45f8d2
mov edx, dword [ebp + 0x2c]
cmp esi, dword [edx + 0x2c]
jge 0x45f91d
movzx edi, byte [ebx]
movzx eax, byte [ebx + 1]
shl edi, 8
or edi, eax
jmp 0x45f946
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.0045b781
pop ebx
mov edi, eax
pop esi
test eax, eax
jle 0x45ca8a
cmp dword [ebp - 0x168], 0
je 0x46020d
jmp 0x45fa40
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 0x45f99d
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
movzx eax, byte [edx + 1]
test byte [eax + 0x64dd40], 4
jne 0x45f9bc
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x3f
jmp 0x4604f3
cmp esi, 0x2d
jne 0x45f9bc
movzx eax, byte [edx + 1]
test byte [eax + 0x64dd40], 4
je 0x45fb83
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
xor edi, edi
movzx edx, byte [eax]
test byte [edx + 0x64dd40], 4
je 0x45f9ee
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 + 0x64dd40], 4
jne 0x45f9d3
mov eax, dword [ebp - 0x8c]
movzx eax, byte [eax]
cmp eax, dword [ebp - 0x180]
jne 0x45ca98
cmp esi, 0x2d
jne 0x45fa2d
test edi, edi
je 0x45caa6
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx + 0x34]
sub eax, edi
lea edi, [eax + 1]
test edi, edi
jg 0x45fa40
mov esi, dword [ebp + 0x10]
mov dword [esi], 0xf
jmp 0x4604f3
cmp esi, 0x2b
jne 0x45fa40
test edi, edi
je 0x45cab4
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 0x45fb23
mov byte [edx], 0
test edi, edi
je 0x45fa7a
push edi
push dword [ebp - 0x154]
push dword [ecx + 0x14]
call fcn.0045bb3f
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x45fad6
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.0045b781
pop edx
test eax, eax
pop ecx
js 0x45cac2
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 0x45fb23
movzx eax, byte [esi + 1]
movzx edx, byte [esi + 2]
shl eax, 8
or eax, edx
jne 0x45fb23
lea ebx, [ebp - 0x64]
test ebx, ebx
je 0x45fb15
cmp dword [ebp - 0x60], esi
jb 0x45fb15
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x130]
push dword [ebp - 0x154]
call fcn.0045bc59
pop edi
test eax, eax
je 0x45fb23
mov ebx, dword [ebx]
test ebx, ebx
je 0x45fb15
cmp dword [ebx + 4], esi
jmp 0x45faef
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x28
jmp 0x4604f3
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 0x4604e8
jmp 0x460490
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 0x45fc58
movzx edx, cl
lea eax, [esi + 1]
cmp edx, 0x69
mov dword [ebp - 0x8c], eax
je 0x45fc14
jg 0x45fbe8
cmp edx, 0x55
je 0x45fc31
jg 0x45fbe1
cmp edx, 0x2d
je 0x45fbfd
cmp edx, 0x4a
je 0x45fc05
jmp 0x45fc44
cmp edx, 0x58
je 0x45fc3c
jmp 0x45fc44
cmp edx, 0x73
je 0x45fc21
jg 0x45fbf6
cmp edx, 0x6d
je 0x45fc19
jmp 0x45fc44
cmp edx, 0x78
je 0x45fc29
jmp 0x45fc44
lea ebx, [ebp - 0xb8]
jmp 0x45fb9d
or dword [ebx], 0x80000
mov esi, dword [ebp + 0x2c]
or dword [esi + 0x48], 0x10
jmp 0x45fb9d
or dword [ebx], 1
jmp 0x45fb9d
or dword [ebx], 2
jmp 0x45fb9d
or dword [ebx], 4
jmp 0x45fb9d
or dword [ebx], 8
jmp 0x45fb9d
or dword [ebx], 0x200
jmp 0x45fb9d
or dword [ebx], 0x40
jmp 0x45fb9d
dec dword [ebp - 0x8c]
mov edi, dword [ebp + 0x10]
mov dword [edi], 0xc
jmp 0x4604f3
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 0x45fd3a
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + 0x14]
add eax, 3
cmp dword [ebp - 0x130], eax
jne 0x45fcba
cmp dword [ebp - 0xf8], 0
je 0x45fcac
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx], 6
jne 0x45fcba
mov ebx, dword [ebp + 0x2c]
mov esi, dword [ebp - 0x178]
mov dword [ebx + 0x44], esi
jmp 0x45fd1c
and dword [ebp - 0x128], 7
mov eax, dword [ebp - 0x178]
and eax, 7
cmp dword [ebp - 0x128], eax
je 0x45fce5
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 0x4604e8
inc eax
mov dword [ebp - 0x104], 0x5e
jmp 0x45f529
test dword [ebp - 0x128], 0x1000
je 0x45fd62
mov dword [ebp - 0x104], 0x5e
jmp 0x45fd88
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 0x45fda0
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 0x45fdde
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.0045c707
add esp, 0x2c
test eax, eax
je 0x4604f3
cmp dword [ebp - 0x104], 0x60
sete dl
xor eax, eax
cmp dword [ebp - 0xf8], 0
sete al
test edx, eax
je 0x45feb0
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 0x45fe5c
mov edi, dword [ebp - 0x130]
cmp byte [edi + 3], 0x68
jne 0x45fe90
dec ebx
jg 0x45cad0
mov dword [ebp - 0x104], 0x68
jmp 0x45feb0
cmp ebx, 2
jg 0x45cade
dec ebx
jne 0x45feb0
mov dword [ebp - 0xc0], 0xffffffff
mov dword [ebp - 0xc4], 0xffffffff
mov eax, dword [ebp - 0x8c]
cmp byte [eax], 0x29
jne 0x45caec
cmp dword [ebp - 0xf8], 0
je 0x45ff21
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 0x45cafa
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 0x4604e8
mov ebx, dword [ebp - 0xc8]
mov dword [ebp - 0x130], ebx
cmp dword [ebp - 0x104], 0x68
je 0x4604e8
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 0x45ffb1
cmp eax, 0xfffffffe
mov eax, dword [ebp - 0xc4]
jne 0x45ff9a
mov dword [ebp - 0x110], 0xffffffff
test eax, eax
js 0x45ff8e
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x140], 1
mov dword [ebp - 0x11c], 0xffffffff
jmp 0x45ffbe
test eax, eax
js 0x45ffbe
cmp dword [ebp - 0xc0], 0
jns 0x45ffbe
or eax, esi
mov dword [ebp - 0xc0], eax
jmp 0x45ffbe
cmp dword [ebp - 0x104], 0x58
jne 0x4604e8
mov eax, dword [ebp - 0xc0]
test eax, eax
js 0x4604e8
mov dword [ebp - 0x114], eax
jmp 0x4604e8
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.0045af30
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov esi, eax
cmp dword [ecx], 0
jne 0x4604f3
test eax, eax
jns 0x460338
cmp eax, 0xffffffe6
jne 0x46004c
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 1], 0x5c
jne 0x46003d
cmp byte [eax + 2], 0x45
jne 0x46003d
add eax, 2
mov dword [ebp - 0x8c], eax
jmp 0x4604e8
mov dword [ebp - 0x13c], 1
jmp 0x4604e8
cmp eax, 0xffffffe7
je 0x4604e8
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x460074
neg eax
cmp eax, 5
jle 0x460074
cmp eax, 0x16
jg 0x460074
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 0x46019a
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 0x46015d
add ecx, 2
mov edi, 1
test bl, bl
je 0x460130
movzx eax, bl
cmp eax, dword [ebp - 0x180]
je 0x460130
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 0x460130
inc ecx
mov al, byte [ecx]
test al, al
je 0x460130
movzx eax, al
jmp 0x4600fe
movzx eax, byte [ecx]
cmp eax, dword [ebp - 0x180]
je 0x460149
mov esi, dword [ebp + 0x10]
mov dword [esi], 0x39
jmp 0x4604e8
mov dword [ebp - 0x168], 1
test edi, edi
je 0x45f848
jmp 0x46018c
movzx eax, byte [esi + 2]
add ecx, 3
test byte [eax + 0x64dd40], 4
je 0x460173
inc ecx
movzx eax, byte [ecx]
jmp 0x460164
movzx eax, byte [ecx]
cmp eax, dword [ebp - 0x180]
je 0x46018c
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x39
jmp 0x4604e8
lea eax, [esi + 1]
mov dword [ebp - 0x8c], eax
jmp 0x45f96b
cmp esi, 0xffffffe4
jne 0x460201
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 0x4601bf
cmp cl, 0x7b
jne 0x460201
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 0x45f848
cmp al, 0x27
setne al
movzx eax, al
dec eax
and eax, 0xffffffaa
add eax, 0x7d
mov dword [ebp - 0x180], eax
jmp 0x45f848
mov eax, esi
neg eax
cmp eax, 0x1c
jle 0x460282
lea edi, [eax - 0x1d]
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x460220
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 0x460266
mov eax, 1
shl eax, cl
or eax, edx
jmp 0x46026b
mov eax, edx
or eax, 1
mov esi, dword [ebp + 0x2c]
mov dword [esi + 0x40], eax
cmp edi, dword [esi + 0x3c]
jle 0x4604e8
mov dword [esi + 0x3c], edi
jmp 0x4604e8
lea eax, [esi + 0x10]
cmp eax, 1
ja 0x460302
push dword [ebp + 0x10]
lea eax, [ebp - 0xcc]
lea edx, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x8c]
call fcn.0045b369
pop ecx
test eax, eax
pop ebx
js 0x4604f3
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 0x4602da
dec edx
jmp 0x4602dc
test edx, edx
je 0x4602e2
mov dl, 0x10
jmp 0x4602e4
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 0x4604e8
lea eax, [esi + 0x16]
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0x144], ebx
cmp eax, 0x10
jbe 0x460320
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 0x4604e8
cmp dword [ebp - 0x154], 0
setne dl
xor eax, eax
cmp esi, 0x7f
setg al
test edx, eax
je 0x460361
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.0046b230
pop edi
mov ecx, eax
pop edx
jmp 0x4603c0
mov eax, esi
mov byte [ebp - 0xa8], al
mov ecx, 1
jmp 0x4603c0
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 0x4603c0
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx + 1]
and eax, 0xc0
add eax, 0xffffff80
jne 0x4603c0
lea eax, [edx + 1]
mov dword [ebp - 0x8c], eax
mov al, byte [edx + 1]
mov byte [ebp + ecx - 0xa8], al
inc ecx
jmp 0x460396
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 0x460404
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 0x4603e7
mov bl, byte [ebp - 0xa8]
cmp bl, 0xd
sete dl
cmp bl, 0xa
sete al
or eax, edx
test al, 1
je 0x460423
mov eax, dword [ebp + 0x2c]
or dword [eax + 0x48], 0x20
cmp dword [ebp - 0x110], 0xfffffffe
jne 0x46049c
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 0x460486
movzx ebx, bl
mov esi, dword [ebp - 0x120]
or ebx, esi
dec ecx
mov dword [ebp - 0x110], ebx
je 0x4604e8
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 0x4604e8
mov dword [ebp - 0x114], 0xffffffff
mov dword [ebp - 0x110], 0xffffffff
jmp 0x4604e8
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 0x4604e8
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 0x45cb12
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x78], eax
mov dword [edx], eax
jmp 0x460724
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 0x34]
cmp eax, dword [ebp - 0xf4]
jle 0x46051a
mov dword [ebp - 0xf4], eax
cmp dword [ebp + 0x30], 0
jne 0x46060e
mov ebx, dword [ebp - 0xdc]
cmp byte [ebx], 0x54
je 0x460543
mov esi, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xec], edi
jmp 0x4605a7
cmp dword [ebp - 0xe8], 0
js 0x460570
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x7c]
je 0x460580
cmp dword [ebp - 0xec], 0
jns 0x460566
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], 0xffffffff
mov eax, dword [ebp - 0x7c]
test eax, eax
js 0x460580
cmp dword [ebp - 0x80], 0
jns 0x460580
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 0x4605a1
mov dword [ebp - 0xec], 0xffffffff
jmp 0x4605a7
or dword [ebp - 0xec], ecx
cmp dword [ebp + 0x14], 0
je 0x46060e
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.0045b865
pop ebx
mov edx, eax
pop esi
cmp eax, 0xfffffffd
jne 0x4605db
mov edx, dword [ebp + 0x2c]
mov dword [edx + 0x54], 1
jmp 0x46060e
test eax, eax
jns 0x460600
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 0x460724
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 0x460737
cmp dword [ebp + 0x30], 0
jne 0x460655
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 0x460629
cmp dword [ebp - 0xe4], 0
jle 0x460669
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 0x4606cd
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x29
jne 0x4606cd
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 0x460730
mov esi, dword [ebp + 0x30]
mov eax, 0x7fffffeb
mov edx, dword [ebp - 0x84]
mov ecx, dword [esi]
sub eax, ecx
cmp eax, edx
jge 0x460728
mov edi, dword [ebp + 0x10]
mov dword [edi], 0x14
xor eax, eax
jmp 0x460792
lea eax, [ecx + edx]
mov edx, dword [ebp + 0x30]
mov dword [edx], eax
mov eax, 1
jmp 0x460792
cmp dword [ebp + 0x30], 0
je 0x460751
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x84], 3
add eax, dword [ecx]
add eax, 3
jmp 0x460787
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 0x45c7cf
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret