Function at 0x46a62c
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
xor eax, eax
mov edx, dword [ebp - 8]
mov esi, dword [edx]
xor edx, edx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], ecx
xor eax, eax
mov dword [ebp - 0x78], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x80], edx
mov edx, 0xfffffffe
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
test byte [ebp - 0x48], 1
je 0x46a6d2
mov eax, pe_nt_image_headers32
jmp 0x46a6d4
xor eax, eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
test eax, eax
movzx edi, byte [edx]
je 0x46a781
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x46a703
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x46e544
mov eax, dword [ebp - 0x54]
cmp esi, eax
jae 0x46a70d
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x46a732
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x46e544
mov eax, esi
mov edx, dword [ebp - 0x54]
sub eax, edx
mov ecx, dword [ebp + 8]
add dword [ecx], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x46a779
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jbe 0x46a77c
mov eax, esi
mov edx, dword [ebp - 0x70]
sub eax, edx
push eax
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
call sub.MSVCRT.DLL_memmove
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
sub edx, ecx
add esp, 0xc
mov eax, dword [ebp - 0x58]
sub esi, edx
mov dword [ebp - 0x70], eax
jmp 0x46a77c
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x46a79e
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x46a79e
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x46e544
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x46a806
test edi, edi
je 0x46a806
cmp edi, 0x5c
jne 0x46a7c6
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x46a7c6
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x46e53c
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x46a7e6
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x46a7e1
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.00469aa0
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x47], 0x40
je 0x46e405
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.00469a74
mov esi, eax
jmp 0x46e405
cmp edi, 0x2a
je 0x46a82b
cmp edi, 0x2b
je 0x46a82b
cmp edi, 0x3f
je 0x46a82b
cmp edi, 0x7b
jne 0x46a827
mov eax, dword [ebp - 0x68]
inc eax
call fcn.00468c8c
test eax, eax
jne 0x46a82b
xor edx, edx
jmp 0x46a830
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x46a86b
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x46a86b
mov edx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test edx, edx
jg 0x46a86b
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x46a866
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.00469aa0
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 8
je 0x46a926
mov edx, dword [ebx + 0xc]
test byte [edx + edi], 1
jne 0x46e53c
cmp edi, 0x23
jne 0x46a926
jmp 0x46a907
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x46a8c3
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x68]
cmp eax, edx
jbe 0x46a8b8
lea ecx, [ebx + 0x54]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.004789d4
test eax, eax
jne 0x46a8bc
xor edx, edx
jmp 0x46a8fa
mov edx, 1
jmp 0x46a8fa
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
sub ecx, eax
mov edx, dword [ebp - 0x68]
cmp ecx, edx
jb 0x46a8f1
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
mov dl, byte [ebx + 0x58]
cmp al, dl
jne 0x46a8f1
mov ecx, dword [ebx + 0x54]
dec ecx
je 0x46a8f5
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
mov cl, byte [ebx + 0x59]
cmp dl, cl
je 0x46a8f5
xor edx, edx
jmp 0x46a8fa
mov edx, 1
test edx, edx
je 0x46a907
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x46a917
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x46a88d
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x46e53c
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x46a947
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x46a947
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.00469a74
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x46a995
je 0x46c074
cmp edx, 0x29
jg 0x46a977
je 0x46a9cd
sub edx, 1
jb 0x46a9cd
sub edx, 0x23
je 0x46aa4d
sub edx, 4
je 0x46cd98
jmp 0x46e405
sub edx, 0x2a
je 0x46c056
dec edx
je 0x46c064
sub edx, 3
je 0x46aa5b
jmp 0x46e405
cmp edx, 0x5e
jg 0x46a9bc
je 0x46aa2a
sub edx, 0x5b
je 0x46aaa5
dec edx
je 0x46e08e
dec edx
je 0x46aa8d
jmp 0x46e405
sub edx, 0x7b
je 0x46c023
dec edx
je 0x46a9cd
jmp 0x46e405
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax], esi
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x68]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x46aa20
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
mov edx, esi
sub ecx, eax
mov eax, dword [ebp - 0x54]
sub edx, eax
cmp ecx, edx
jge 0x46aa16
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x46e544
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
sub esi, ecx
add dword [eax], esi
mov eax, 1
jmp 0x46e54e
test byte [ebp - 0x48], 2
je 0x46aa3f
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x46aa3f
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x46e53c
xor eax, eax
mov dword [ebp - 0x70], eax
mov byte [esi], 0x1b
inc esi
jmp 0x46e53c
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x46aa6a
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x46aa83
mov dl, 0xd
jmp 0x46aa85
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x46e53c
test byte [ebx + 0x43], 2
je 0x46e405
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x40
jmp 0x46e544
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x46aac8
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2e
je 0x46aac8
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3d
jne 0x46aaf7
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0046992c
test eax, eax
je 0x46aaf7
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
jne 0x46aae8
mov edx, 0xd
jmp 0x46aaed
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x46e544
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0x5c
jne 0x46ab3b
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x46ab1d
inc dword [ebp - 0x68]
jmp 0x46aaff
push 3
push 0x486009
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call sub.MSVCRT.DLL_strncmp
add esp, 0xc
test eax, eax
jne 0x46ab56
add dword [ebp - 0x68], 3
jmp 0x46aaff
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x46ab56
cmp edi, 0x5e
jne 0x46ab56
mov dword [ebp - 0x94], 1
jmp 0x46aaff
cmp edi, 0x5d
jne 0x46ab8e
test byte [ebx + 0x43], 2
je 0x46ab8e
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x46ab6f
mov cl, 0xd
jmp 0x46ab71
mov cl, 0x6d
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x46ab83
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x46e53c
xor eax, eax
xor edx, edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea ecx, [ebp - 0x1fc]
push 0
push ecx
call sub.MSVCRT.DLL_memset
xor eax, eax
lea edx, [esi + 4]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], ecx
je 0x46be10
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x46aca7
cmp edi, 0x7f
jle 0x46aca7
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x46aca7
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x486474]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x4860b8]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0x68]
lea edx, [eax + 1]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp ecx, eax
jg 0x46ac9e
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x46ac64
mov eax, dword [ebp - 0xe4]
add dword [ebp - 0x68], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x46accd
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x46acf9
cmp edi, 0x5c
jne 0x46b82b
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x46b82b
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x46bdef
cmp edi, 0x5b
jne 0x46afa1
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3a
je 0x46ad26
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2e
je 0x46ad26
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3d
jne 0x46afa1
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0046992c
test eax, eax
je 0x46afa1
xor edx, edx
mov dword [ebp - 0xec], edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3a
je 0x46ad63
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1f
jmp 0x46e544
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5e
jne 0x46ad88
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.00469970
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x46adb6
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x46e544
test byte [ebp - 0x48], 1
je 0x46adcf
mov eax, dword [ebp - 0xf0]
cmp eax, 2
jg 0x46adcf
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xf0], ecx
push 0x20
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x4854b0]
mov ecx, dword [ebp - 0xfc]
add edx, ecx
push edx
lea eax, [ebp - 0x21c]
push eax
call sub.MSVCRT.DLL_memcpy
add esp, 0xc
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx*4 + 0x4854b4]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x4854b8]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jl 0x46aed1
mov eax, dword [ebp - 0xf8]
test eax, eax
jl 0x46ae8a
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [edx]
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46ae66
jmp 0x46aed1
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [edx]
not cl
and byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46aead
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x46aee1
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x46aef3
and byte [ebp - 0x21b], 0xc3
jmp 0x46af05
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jne 0x46af05
and byte [ebp - 0x211], 0x7f
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x46af4f
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46af29
jmp 0x46af8b
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46af69
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xac], 0xa
jmp 0x46bdef
cmp edi, 0x5c
jne 0x46b82b
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00468788
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x46e544
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x46afdd
mov edi, 8
jmp 0x46b03e
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x46afed
mov edi, 0x58
jmp 0x46b03e
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x46affd
mov edi, 0x52
jmp 0x46b03e
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x46b031
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x46b025
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
jne 0x46b025
add dword [ebp - 0x68], 2
jmp 0x46bdef
mov dword [ebp - 0x60], 1
jmp 0x46bdef
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x46bdef
test edi, edi
jge 0x46b82b
mov eax, dword [ebx + 8]
mov dword [ebp - 0x100], eax
add dword [ebp - 0xac], 2
mov edx, dword [ebp + 8]
test edx, edx
jne 0x46b25e
mov ecx, edi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x46b071
jmp dword [ecx*4 + 0x46b078]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46b0ad
jmp 0x46bdef
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46b0fb
jmp 0x46bdef
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46b144
jmp 0x46bdef
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46b195
jmp 0x46bdef
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46b1da
and byte [ebp - 0x1fb], 0xf7
jmp 0x46bdef
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x46b22e
or byte [ebp - 0x1fb], 8
jmp 0x46bdef
cmp edi, 0xfffffff9
je 0x46bdef
cmp edi, 0xfffffffa
je 0x46bdef
cmp edi, 0xfffffff5
je 0x46bdef
cmp edi, 0xfffffff6
je 0x46bdef
cmp edi, 0xfffffff7
je 0x46bdef
cmp edi, 0xfffffff8
je 0x46bdef
mov eax, edi
neg eax
cmp eax, 0x13
jne 0x46b3c1
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46bdef
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
jmp 0x46bdef
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x46b5de
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x46b3f7
sub edx, 3
je 0x46b400
sub edx, 0x10
je 0x46b409
jmp 0x46b410
xor dword [ebp - 0x104], 2
jmp 0x46b410
xor dword [ebp - 0x104], 1
jmp 0x46b410
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46b3dc
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46bdef
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
jmp 0x46bdef
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x46b65c
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x46bdef
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x2028
mov byte [edx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
jmp 0x46bdef
mov ecx, edi
neg ecx
cmp ecx, 0x14
jne 0x46b759
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x46b68d
sub edx, 0xf
je 0x46b6ab
jmp 0x46b6b2
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x46b6b2
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x46b677
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46bdef
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
jmp 0x46bdef
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x46b76f
mov eax, edi
neg eax
cmp eax, 0xf
jne 0x46b7ff
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.00468b64
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x46e544
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x46b7bb
mov cl, 3
jmp 0x46b7bd
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x46bdef
test byte [ebp - 0x48], 0x40
je 0x46b813
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x46e544
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x46b82b
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x46b841
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
je 0x46b822
mov ecx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], ecx
je 0x46b854
cmp edi, 0xa
jne 0x46b858
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x46bcd8
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2d
jne 0x46bcd8
add dword [ebp - 0x68], 2
jmp 0x46b87c
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5c
jne 0x46b8ba
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x45
je 0x46b878
jmp 0x46b8ba
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x5c
jne 0x46b8b1
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x46b8b1
add dword [ebp - 0x68], 2
jmp 0x46b8ba
mov dword [ebp - 0x60], 1
jmp 0x46b8ce
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x5c
jne 0x46b8ce
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x51
je 0x46b892
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x46b8e8
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x46b8f6
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x46b8f6
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x46bcd8
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x46b9ca
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x118]
cmp eax, 0xc0
jl 0x46b9d7
mov edx, dword [ebp - 0x118]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x486474]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x120]
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov eax, dword [edx*4 + 0x4860b8]
mov edx, dword [ebp - 0x118]
and eax, edx
shl eax, cl
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jg 0x46b9bf
sub dword [ebp - 0x124], 6
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx edx, byte [edx + eax]
and edx, 0x3f
shl edx, cl
or dword [ebp - 0x118], edx
inc dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jle 0x46b984
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x68], edx
jmp 0x46b9d7
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x46ba75
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x5c
jne 0x46ba75
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00468788
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x46e544
mov ecx, dword [ebp - 0x118]
test ecx, ecx
jge 0x46ba75
mov eax, dword [ebp - 0x118]
cmp eax, 0xfffffffb
jne 0x46ba39
mov dword [ebp - 0x118], 8
jmp 0x46ba75
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffea
jne 0x46ba50
mov dword [ebp - 0x118], 0x58
jmp 0x46ba75
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xffffffef
jne 0x46ba67
mov dword [ebp - 0x118], 0x52
jmp 0x46ba75
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x68], eax
jmp 0x46bcd8
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x46ba8d
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 8
jmp 0x46e544
mov eax, dword [ebp - 0x118]
cmp edi, eax
je 0x46bcd8
mov edx, dword [ebp - 0x118]
cmp edx, 0xd
je 0x46bab1
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xa
jne 0x46bab5
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x46bc40
mov edx, dword [ebp - 0x118]
cmp edx, 0xff
jg 0x46bae7
test byte [ebp - 0x48], 1
je 0x46bc40
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x7f
jle 0x46bc40
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x46bc02
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x46bbdc
mov edx, dword [ebp - 0x128]
cmp edx, edi
jb 0x46bb2d
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp ecx, eax
jbe 0x46bbdc
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x46bb4f
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x46bb4f
mov edi, dword [ebp - 0x128]
jmp 0x46bbdc
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x46bb7e
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x46bb7e
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x46bbdc
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x46bb9f
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x46bbc5
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.00478cc4
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.00469ac8
test eax, eax
jne 0x46bb0f
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.00478cc4
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.00478cc4
add dword [ebp - 0x84], eax
jmp 0x46bdef
mov edx, dword [ebp - 0x118]
sub edx, edi
inc edx
add dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x46bdef
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x46bdef
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x46bc86
add edx, 7
sar edx, 0x55
call [ecx - 0x7b]
rcr byte [ecx + 0xf], 0x84
mov al, 0
add byte [eax], al
push edi
push esi
push ebx
call fcn.0046bd97
add esp, 0xc
call fcn.0046bd17
fidivr word [eax]
mov word [ecx - 0x7a878975], ss
js fcn.0046bd97
test byte [edi], 0x84
xchg ecx, eax
add byte [eax], al
add byte [ebx + 0x3243e5c], cl
test dword [ebx], 0xfef1e8df
invalid
sal bh, cl
int1
xor edx, edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
div ecx
test edx, edx
je 0x46c005
inc dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x8c]
mov dword [ebp + 0xc], ecx
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bl
mov byte [ebp - 0x3e], 0xec
mov byte [ebp - 0x3d], bl
mov byte [ebp - 0x3c], 0x45
mov byte [ebp - 0x3b], 0x7a
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x67
mov byte [ebp - 0x38], 0x66
mov byte [ebp - 0x37], 0x72
mov byte [ebp - 0x36], 0x7f
mov byte [ebp - 0x35], 0x52
mov byte [ebp - 0x34], 0x7f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0x7c
mov byte [ebp - 0x31], 0x70
mov byte [ebp - 0x30], 0x13
call fcn.0046bd17
ror dword [ebx], 1
adc eax, 0xc0458df4
jp 0x46bfeb
inc ebp
invalid
or edx, dword [0xc0458df4]
push eax
call fcn.0046bd27
push eax
push esi
push dword [ebp + 8]
call fcn.0046bcdc
add esp, 0x10
mov dword [ebp - 0x88], eax
call fcn.0046bd17
add al, 0x10
ret
invalid
invalid
lea eax, [ebp - 0x77c]
push eax
call fcn.0046bd27
pop ecx
mov al, byte [ebp - 0x12c]
mov byte [ebp - 0x778], al
push 0x30
lea eax, [ebp - 0x77c]
push eax
call fcn.0046bd27
pop ecx
push eax
lea eax, [ebp - 0x504]
push eax
call fcn.0046bc88
add esp, 0xc
lea eax, [ebp - 0x504]
mov dword [ebp - 0x3a0], eax
jmp 0x46dc8f
lea eax, [ebp - 0x79c]
push eax
call fcn.0046bd27
pop ecx
push eax
mov eax, dword [ebp - 0x550]
lea eax, [ebp + eax - 0x654]
push eax
call fcn.0046bc88
add esp, 0xc
lea eax, [ebp - 0x654]
mov dword [ebp - 0x3a0], eax
jmp 0x46dc8f
mov eax, dword [ebp - 0x6fc]
inc eax
mov dword [ebp - 0x6fc], eax
and dword [ebp - 0x37c], 0
call fcn.0046bd17
sub byte [ecx - 0x4a009f83], cl
pushal
cld
invalid
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x48]
push eax
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.00468788
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x46e544
test edi, edi
jge 0x46e3d0
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x46e0f2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x5c
jne 0x46e0e6
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x45
jne 0x46e0e6
add dword [ebp - 0x68], 2
jmp 0x46e53c
mov dword [ebp - 0x60], 1
jmp 0x46e53c
mov edx, edi
neg edx
cmp edx, 0x19
je 0x46e53c
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x46e120
mov eax, edi
neg eax
cmp eax, 5
jle 0x46e120
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x46e120
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov edx, edi
neg edx
mov dword [ebp - 0x38], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jne 0x46e248
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3c
jne 0x46e153
mov ecx, 0x3e
jmp 0x46e158
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor edx, edx
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2b
je 0x46e20e
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2d
je 0x46e20e
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x46e1be
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x46e1b0
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x46e1d2
inc eax
mov cl, byte [eax]
test cl, cl
je 0x46e1d2
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp edx, ecx
jne 0x46e19b
movzx eax, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x46e1ed
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x46e53c
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x46e1ff
inc dword [ebp - 0x68]
jmp 0x46d9cb
mov dword [ebp - 0xa4], 1
jmp 0x46d849
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x46e217
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x485f09], 4
jne 0x46e216
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x46e240
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x39
jmp 0x46e53c
inc dword [ebp - 0x68]
jmp 0x46d9cb
mov ecx, edi
neg ecx
cmp ecx, 0x1c
jne 0x46e2ae
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3c
je 0x46e271
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x27
je 0x46e271
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x7b
jne 0x46e2ae
xor eax, eax
mov dword [ebp - 0xa4], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3c
jne 0x46e28d
mov eax, 0x3e
jmp 0x46e2a3
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x27
jne 0x46e29e
mov eax, 0x27
jmp 0x46e2a3
mov eax, 0x7d
mov dword [ebp - 0xcc], eax
jmp 0x46d849
mov edx, edi
neg edx
cmp edx, 0x1d
jl 0x46e333
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x46e2d1
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0x20
jge 0x46e30c
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x46e311
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x46e53c
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x38], eax
jmp 0x46e53c
mov edx, edi
neg edx
cmp edx, 0xf
je 0x46e345
mov ecx, edi
neg ecx
cmp ecx, 0x10
jne 0x46e3a9
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x1cc]
call fcn.00468b64
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
test edx, edx
jl 0x46e544
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete cl
and ecx, 1
mov eax, dword [ebp - 0x1cc]
cmp ecx, eax
je 0x46e38d
mov dl, 0x10
jmp 0x46e38f
mov dl, 0xf
mov byte [esi], dl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov cl, byte [ebp - 0x1d0]
mov byte [esi], cl
inc esi
jmp 0x46e53c
mov eax, edi
neg eax
cmp eax, 5
jle 0x46e3bf
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x46e3bf
mov ecx, esi
jmp 0x46e3c1
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x46e53c
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46e3f1
cmp edi, 0x7f
jle 0x46e3f1
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.00478cc4
mov dword [ebp - 0xd0], eax
jmp 0x46e457
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x46e457
mov dword [ebp - 0xd0], 1
mov eax, edi
mov byte [ebp - 0xd8], al
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x46e457
cmp edi, 0xc0
jl 0x46e457
jmp 0x46e443
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xd0]
mov al, byte [ecx]
mov byte [ebp + edx - 0xd8], al
inc dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
and eax, 0xc0
cmp eax, 0x80
je 0x46e428
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x46e464
mov dl, 0x1d
jmp 0x46e466
mov dl, 0x1c
mov byte [esi], dl
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x46e49d
mov ecx, dword [ebp - 0x1dc]
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov edx, dword [ebp - 0xd0]
cmp edi, edx
jl 0x46e481
mov cl, byte [ebp - 0xd8]
cmp cl, 0xd
je 0x46e4b2
mov al, byte [ebp - 0xd8]
cmp al, 0xa
jne 0x46e4b6
or dword [ebx + 0x44], 0x20
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x46e50e
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x46e4db
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x46e503
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x46e53c
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebx + 0x48]
or ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x46e53c
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x46e53c
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x46e52a
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x46e53c
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov edx, dword [ebx + 0x48]
or ecx, edx
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x68]
jmp 0x46a6d7
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18