Function at 0x446990
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xe8
push ebx
push esi
push edi
mov edi, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x60]
xor eax, eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], eax
mov dword [ebp + 4], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp + 0x48], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ecx]
mov ecx, dword [ebp + 0x64]
mov esi, dword [ecx]
xor ecx, ecx
inc ecx
mov eax, edx
shr eax, 0xb
and eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, edx
shr eax, 9
and eax, ecx
mov dword [ebp - 0x70], eax
xor eax, ecx
mov dword [ebp - 0x6c], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x28], eax
mov eax, edx
and eax, ecx
shl eax, 8
mov dword [ebp + 0x34], edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x20], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x4c], eax
je 0x446a8e
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x448faf
cmp ebx, dword [ebp - 0x14]
jae 0x446a33
mov ebx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, ebx
sub ecx, dword [ebp - 0x14]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x449128
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x7c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x446a83
cmp eax, dword [ebp - 0x58]
jbe 0x446a86
mov esi, dword [ebp - 0x58]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.00452e10
mov eax, esi
sub eax, dword [ebp + 0x48]
add esp, 0xc
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x50]
add ebx, eax
jmp 0x446a86
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x14], ebx
jmp 0x446aa0
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x448faf
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x446b01
cmp eax, ecx
je 0x446b01
cmp eax, 0x5c
jne 0x446ac3
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x446ac3
mov dword [ebp + 4], ecx
mov dword [ebp + 0x50], eax
jmp 0x448fa4
cmp dword [ebp - 4], ecx
je 0x446adf
cmp dword [ebp + 0x7c], ecx
jne 0x446adb
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.0044628f
add esp, 4
and dword [ebp - 4], 0
test word [ebp + 0x34], 0x4000
je 0x44773b
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.0044626b
mov ebx, eax
jmp 0x44773b
cmp eax, 0x2a
je 0x446b73
cmp eax, 0x2b
je 0x446b73
cmp eax, 0x3f
je 0x446b73
cmp eax, 0x7b
jne 0x446b21
lea eax, [esi + 1]
call fcn.00445951
test eax, eax
jne 0x446b73
and dword [ebp + 0x40], 0
cmp dword [ebp - 4], 0
je 0x446b50
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x28]
test eax, eax
jg 0x446b50
cmp dword [ebp + 0x7c], 0
jne 0x446b4c
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.0044628f
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp - 4], 0
test byte [ebp + 0x34], 8
je 0x446bc6
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x448fa4
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x446bc6
jmp 0x446c5a
mov dword [ebp + 0x40], 1
jmp 0x446b50
mov ecx, dword [edi + 0x50]
test ecx, ecx
je 0x446c34
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x446c5a
push dword [ebp + 0x1c]
lea edx, [edi + 0x54]
push edx
push eax
push ecx
push esi
call fcn.0044ec03
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x446c5a
mov eax, dword [edi + 0x54]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x448fa4
and dword [ebp + 0x4c], 0
xor edx, edx
test word [ebp + 0x34], 0x4000
je 0x446beb
cmp dword [ebp + 0x40], edx
jne 0x446beb
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.0044626b
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x4476c7
je 0x4476a6
sub eax, edx
je 0x4476f0
sub eax, 0x24
je 0x44769b
sub eax, 4
je 0x446c76
dec eax
je 0x4476f0
dec eax
je 0x446c6d
dec eax
jne 0x44773b
or dword [ebp + 0x30], 0xffffffff
mov dword [ebp + 0x14], 1
jmp 0x44872f
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x446c5a
cmp al, byte [edi + 0x58]
jne 0x446c5a
cmp ecx, 1
je 0x446baf
mov al, byte [esi + 1]
cmp al, byte [edi + 0x59]
je 0x446baf
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x446b7c
jmp 0x446bc2
or dword [ebp + 0x30], 0xffffffff
jmp 0x44872c
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x2c], eax
mov eax, dword [edi + 0x20]
inc esi
mov dword [ebp - 0xc], eax
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x2a
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x38], 0x5e
mov dword [ebp], edx
jne 0x446d5f
mov ecx, dword [edi + 0xc]
lea edx, [esi + 1]
mov dword [ebp + 0x40], edx
movzx edx, byte [edx]
test byte [edx + ecx], 2
je 0x446d5f
mov esi, dword [ebp + 0x40]
and dword [ebp + 0x48], 0
mov dword [ebp + 0x3c], str.ACCEPT
mov dword [ebp + 0x40], esi
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x446cc4
mov al, byte [esi]
cmp al, 0x3a
je 0x448fbd
cmp al, 0x29
jne 0x446d51
sub esi, dword [ebp + 0x40]
xor eax, eax
cmp dword [0x472038], eax
mov dword [ebp + 0x24], eax
jle 0x446d51
cmp esi, dword [eax*8 + section..data]
jne 0x446d0e
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x40]
call fcn.004517bb
add esp, 0xc
test eax, eax
mov eax, dword [ebp + 0x24]
je 0x446d2d
mov ecx, dword [eax*8 + section..data]
mov edx, dword [ebp + 0x3c]
inc eax
cmp eax, dword [0x472038]
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x24], eax
jl 0x446cef
jmp 0x446d42
mov al, byte [eax*8 + 0x472004]
mov byte [ebx], al
inc ebx
cmp al, 0x6d
jne 0x446d42
mov dword [edi + 0x4c], 1
mov eax, dword [ebp + 0x24]
cmp eax, dword [0x472038]
jl 0x448fa4
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x449131
cmp al, 0x3f
jne 0x447527
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x4470bf
je 0x4470f8
cmp eax, 0x28
jg 0x4470a2
je 0x446e32
sub eax, 0x21
je 0x446de6
dec eax
dec eax
je 0x446db7
sub eax, 3
je 0x446da8
dec eax
je 0x4473c5
jmp 0x447152
push 0x29
pop edx
mov dword [ebp + 0x40], 1
jmp 0x447882
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x446dd8
cmp al, 0x29
je 0x446dcf
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x446dc1
cmp byte [esi], 0
jne 0x448fa4
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x449131
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x446dfc
mov byte [ebx], 0x6c
inc ebx
and dword [ebp + 0x48], 0
jmp 0x448fa4
mov dword [ebp + 0x38], 0x58
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x38]
mov byte [ebx], al
mov ecx, dword [edi + 0x48]
and dword [ebp - 8], 0
cmp eax, 0x59
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x40], ecx
je 0x447538
cmp eax, 0x5a
je 0x447538
xor eax, eax
jmp 0x44753b
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x38], 0x5f
jne 0x446e5a
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x447508
cmp al, 0x21
je 0x447508
cmp al, 0x3c
je 0x447508
or dword [ebp + 0x44], 0xffffffff
mov byte [ebx + 3], 0x63
mov esi, dword [ebp + 0x50]
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x24], 3
jne 0x446e8b
add esi, 2
cmp byte [esi], 0x26
jne 0x446e8b
or dword [ebp + 0x3c], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x64
jmp 0x446ec1
cmp cl, 0x3c
jne 0x446e99
mov dword [ebp + 0x3c], 0x3e
jmp 0x446ea5
cmp cl, 0x27
jne 0x446eaa
mov dword [ebp + 0x3c], 0x27
mov dword [ebp + 0x50], eax
jmp 0x446ec1
and dword [ebp + 0x3c], 0
cmp cl, 0x2d
je 0x446eb8
cmp cl, 0x2b
jne 0x446ec1
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x44], eax
mov esi, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x448fcb
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [ecx + eax], 0x10
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x18], esi
je 0x446f12
test edx, edx
jl 0x446f02
test byte [eax + 0x467430], 4
je 0x446eff
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
jmp 0x446f02
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [ecx + eax], 0x10
jne 0x446ee9
mov dword [ebp + 0x4c], edx
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x3c], 0
mov dword [ebp + 0x48], eax
jle 0x446f30
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x3c]
mov dword [ebp + 0x50], esi
jne 0x448fdc
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x448fdc
cmp dword [ebp + 0x7c], 0
jne 0x447508
xor eax, eax
cmp dword [ebp + 0x44], eax
jle 0x446f88
cmp edx, eax
jle 0x448fee
cmp dword [ebp + 0x44], 0x2d
jne 0x446f67
mov ecx, dword [edi + 0x30]
sub ecx, edx
inc ecx
mov edx, ecx
jmp 0x446f6a
add edx, dword [edi + 0x30]
cmp edx, eax
jle 0x4472b7
cmp edx, dword [edi + 0x34]
jg 0x4472b7
mov eax, edx
sar eax, 8
mov byte [ebx + 5], dl
jmp 0x447505
cmp dword [edi + 0x28], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], eax
jle 0x446fc2
mov esi, ecx
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004517bb
add esp, 0xc
test eax, eax
je 0x446fbf
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x40], esi
jl 0x446f98
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x446fe5
mov eax, dword [ebp + 0x40]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
mov eax, ecx
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x447508
mov eax, dword [ebp + 0x34]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x18]
mov ecx, esi
call fcn.00445a48
add esp, 0xc
test eax, eax
jg 0x446fd5
xor ecx, ecx
cmp dword [ebp + 0x3c], ecx
jne 0x4472b7
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0x52
jne 0x447059
xor esi, esi
inc esi
cmp dword [ebp + 0x48], esi
jle 0x447043
movzx eax, byte [esi + edx]
test byte [eax + 0x467430], 4
je 0x4472b7
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x48]
lea ecx, [ecx + eax - 0x30]
jl 0x447021
test ecx, ecx
jne 0x447048
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x64
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x447505
cmp dword [ebp + 0x48], 6
jne 0x447083
push 6
push str.DEFINE
push edx
call fcn.004517bb
add esp, 0xc
test eax, eax
jne 0x447083
mov byte [ebx + 3], 0x65
mov dword [ebp + 0x24], 1
jmp 0x447508
mov eax, dword [ebp + 0x4c]
test eax, eax
jle 0x447093
cmp eax, dword [edi + 0x34]
jle 0x446fd5
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x4490c9
cmp eax, 0x2b
je 0x44710c
cmp eax, 0x2d
je 0x44710c
cmp eax, 0x2f
jle 0x447152
cmp eax, 0x39
jle 0x44710c
jmp 0x447152
sub eax, 0x3c
je 0x4473a2
dec eax
je 0x447392
dec eax
je 0x447386
sub eax, 5
je 0x44731b
sub eax, 0xd
je 0x4472e1
dec eax
dec eax
je 0x447108
sub eax, 0x2a
jne 0x447152
mov dword [ebp], 1
mov dword [ebp + 0x38], 0x5d
inc esi
mov dword [ebp + 0x50], esi
jmp 0x447508
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x447138
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447265
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3f
jmp 0x449131
cmp ecx, 0x2d
jne 0x447265
inc esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447262
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], esi
lea ecx, [ebp + 0x40]
je 0x4471e1
cmp dl, 0x3a
je 0x4471db
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x4471b1
je 0x4471ac
cmp eax, 0x2d
je 0x4471a7
cmp eax, 0x4a
je 0x44719b
cmp eax, 0x55
je 0x447193
cmp eax, 0x58
jne 0x448ffc
or dword [ecx], 0x40
jmp 0x4471d1
or dword [ecx], 0x200
jmp 0x4471d1
or dword [ecx], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x4471d1
lea ecx, [ebp + 0x3c]
jmp 0x4471d1
or dword [ecx], 1
jmp 0x4471d1
cmp eax, 0x6d
je 0x4471ce
cmp eax, 0x73
je 0x4471c9
cmp eax, 0x78
jne 0x448ffc
or dword [ecx], 8
jmp 0x4471d1
or dword [ecx], 4
jmp 0x4471d1
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x447164
mov esi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x3c]
or esi, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
not eax
and esi, eax
cmp byte [ecx], 0x29
mov eax, esi
mov dword [ebp + 0x2c], eax
jne 0x447253
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x447216
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x44720b
cmp dword [ecx], 6
jne 0x447216
mov dword [edi + 0x40], eax
mov dword [ebp + 0x34], eax
jmp 0x446df3
mov ecx, eax
xor ecx, dword [ebp + 0x34]
test cl, 7
je 0x44722c
mov byte [ebx], 0x18
mov cl, al
inc ebx
and cl, 7
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x5c]
mov dword [ecx], eax
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x70], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x20], eax
jmp 0x446df3
inc dword [ebp + 0x50]
mov dword [ebp + 0x38], 0x5d
jmp 0x447508
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x467430], 4
mov dword [ebp + 0x4c], edx
je 0x447290
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447276
mov dword [ebp + 0x4c], edx
cmp byte [esi], 0x29
jne 0x44900d
cmp ecx, 0x2d
jne 0x4472c5
test edx, edx
je 0x448fee
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
test eax, eax
mov dword [ebp + 0x4c], eax
jg 0x447955
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x449131
cmp ecx, 0x2b
jne 0x447955
test edx, edx
je 0x448fee
add edx, dword [edi + 0x30]
mov dword [ebp + 0x4c], edx
jmp 0x447955
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x447308
cmp dl, 0x3e
je 0x447308
cmp dl, 0x3c
je 0x4473c5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x449131
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
mov dword [ebp + 0x40], eax
pop edx
jmp 0x447882
mov byte [ebx], 0x52
mov esi, dword [ebp + 0x50]
mov dword [ebp - 4], ebx
inc ebx
mov dword [ebp - 0x28], 1
xor ecx, ecx
jmp 0x447337
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x467430], 4
jne 0x447330
cmp byte [esi], 0x29
jne 0x44901b
cmp ecx, 0xff
jg 0x449029
mov byte [ebx], cl
mov eax, dword [ebp + 0x50]
sub eax, dword [edi + 0x18]
inc ebx
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ebp + 0x50]
sub al, byte [edi + 0x18]
mov byte [ebx + 2], 0
inc al
mov byte [ebx + 1], al
mov byte [ebx + 3], 0
add ebx, 4
jmp 0x446df3
mov dword [ebp + 0x38], 0x5c
jmp 0x4470ff
mov dword [ebp + 0x38], 0x57
inc esi
mov dword [ebp + 0x50], esi
jmp 0x446e03
mov al, byte [esi + 1]
cmp al, 0x21
je 0x44751e
cmp al, 0x3d
je 0x447510
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x449053
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x3c], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x18], esi
je 0x4473f9
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x4473ec
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x447446
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x3c]
jne 0x449037
cmp dword [edi + 0x28], 0x2710
jge 0x449045
lea edx, [eax + 3]
cmp edx, dword [edi + 0x2c]
jle 0x4474e8
cmp eax, 0x20
mov dword [edi + 0x2c], edx
jle 0x4474e8
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x449131
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4474ba
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.0044fc25
add esp, 0xc
test eax, eax
jne 0x44748f
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
jne 0x44748a
test dword [ebp + 0x34], 0x80000
jne 0x447491
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x449131
or eax, 0xffffffff
test eax, eax
jl 0x4474a1
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x447453
jmp 0x4474ba
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [ebp + 0x44]
imul ecx, eax
push ecx
add eax, esi
push esi
push eax
call fcn.00452e10
add esp, 0xc
mov eax, dword [edi + 0x30]
push dword [ebp + 0x48]
inc eax
push dword [ebp + 0x18]
sar eax, 8
mov byte [esi], al
mov al, byte [edi + 0x30]
inc al
mov byte [esi + 1], al
lea eax, [esi + 2]
push eax
call fcn.0044f8c0
mov eax, dword [ebp + 0x48]
mov byte [esi + eax + 2], 0
mov esi, dword [ebp + 0x50]
add esp, 0xc
inc esi
inc dword [edi + 0x28]
mov dword [ebp + 0x50], esi
inc dword [edi + 0x30]
mov eax, dword [edi + 0x30]
sar eax, 8
mov byte [ebx + 3], al
mov al, byte [edi + 0x30]
mov dword [ebp + 0x24], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x48], ebx
jmp 0x446e07
mov dword [ebp + 0x38], 0x59
inc esi
inc esi
jmp 0x44739a
mov dword [ebp + 0x38], 0x5a
jmp 0x447517
test word [ebp + 0x34], 0x1000
je 0x4474ef
mov dword [ebp + 0x38], 0x5d
jmp 0x447508
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 8]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0x24]
push dword [ebp]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x34]
and eax, 7
push eax
push dword [ebp + 0x2c]
call fcn.00449143
add esp, 0x34
test eax, eax
je 0x449131
mov edx, dword [ebp + 0x38]
cmp edx, 0x5f
jne 0x4475b3
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x4475b3
mov eax, ebx
xor ecx, ecx
mov ch, byte [eax + 1]
inc esi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x447591
cmp byte [ebx + 3], 0x65
jne 0x447608
cmp esi, 1
jg 0x449065
push 0x65
pop edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0x29
jne 0x449081
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x447621
mov eax, dword [ecx]
mov ecx, dword [ebp - 8]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x449128
lea eax, [eax + ecx - 6]
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], eax
mov byte [ebx], 0x5d
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x54
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
jmp 0x448fa4
cmp esi, 2
jg 0x449073
cmp esi, 1
jne 0x4475b3
or eax, 0xffffffff
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x60], eax
jmp 0x4475b6
cmp edx, 0x65
mov ebx, dword [ebp + 0x10]
je 0x448fa4
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], ecx
mov ecx, dword [ebp + 0x28]
xor esi, esi
cmp edx, 0x5c
mov dword [ebp + 8], ecx
mov dword [ebp - 0x5c], esi
jl 0x44767f
cmp ecx, 0xfffffffe
jne 0x447662
cmp eax, esi
jl 0x447658
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x5c], 1
jmp 0x44765c
or dword [ebp + 0x28], 0xffffffff
or dword [ebp + 8], 0xffffffff
jmp 0x447671
cmp eax, esi
jl 0x447671
cmp dword [ebp - 0x1c], esi
jge 0x44767a
or eax, dword [ebp + 0x40]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jl 0x448fa4
mov eax, dword [ebp - 0x1c]
jmp 0x447693
cmp edx, 0x57
jne 0x448fa4
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x448fa4
mov dword [ebp + 0xc], eax
jmp 0x448fa4
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x1a
jmp 0x447acf
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4476b0
or dword [ebp + 0x28], 0xffffffff
mov eax, dword [ebp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x48], ebx
mov byte [ebx], 0xc
jmp 0x447acf
sub eax, 0x3f
je 0x448725
sub eax, 0x1c
je 0x447af2
dec eax
je 0x4477bd
dec eax
dec eax
je 0x4477a2
sub eax, 0x1d
je 0x447736
dec eax
jne 0x44773b
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x28]
mov dword [eax], ecx
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x7c]
cmp ecx, edx
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
je 0x44772e
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x449128
sub eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x44913b
cmp dword [ebp + 0x40], edx
jne 0x447778
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x34], al
je 0x448627
cmp dword [ebp + 0x4c], 0xc0
jl 0x448627
mov ecx, dword [ebp + 0x50]
jmp 0x44776a
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x34], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x447760
jmp 0x448627
push dword [ebp + 0x68]
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [esi + 1]
call fcn.004459b3
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp dword [eax], 0
jne 0x449131
jmp 0x44872f
test byte [ebp + 0x34], 2
je 0x4477b2
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4477b2
or dword [ebp + 0x28], 0xffffffff
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x19
jmp 0x447acf
push 0
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x2c], esi
push dword [ebp + 0x68]
push eax
call fcn.004455fe
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x449131
test eax, eax
jge 0x447ad5
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x447815
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x447809
add eax, 2
cmp byte [eax], 0x45
je 0x446abb
mov dword [ebp + 4], 1
jmp 0x448fa4
cmp ecx, 0x18
je 0x448fa4
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x447832
cmp ecx, 5
jle 0x447832
cmp ecx, 0x16
jge 0x447832
or dword [ebp + 0x28], 0xffffffff
cmp ecx, 0x1a
mov edx, dword [ebp + 0x28]
mov dword [ebp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], edx
jne 0x447a4f
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x447860
cmp dl, 0x27
je 0x447860
cmp dl, 0x7b
jne 0x447a4f
and dword [ebp + 0x40], 0
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x447874
push 0x3e
jmp 0x447315
xor edx, edx
cmp al, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
mov ecx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x18], esi
je 0x4478a4
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x447897
mov eax, esi
sub eax, dword [ebp + 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x4478d4
test eax, eax
je 0x44908f
movzx ecx, byte [esi]
cmp ecx, edx
jne 0x449037
cmp eax, 0x20
jg 0x447438
and dword [ebp + 0x4c], 0
jmp 0x44794b
and dword [ebp + 0x44], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x44790f
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x18]
call fcn.004517bb
add esp, 0xc
test eax, eax
jne 0x447901
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
je 0x44790f
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jl 0x4478e1
mov eax, dword [ebp + 0x44]
cmp eax, dword [edi + 0x28]
jge 0x447922
movzx eax, byte [esi + 1]
mov ah, byte [esi]
mov dword [ebp + 0x4c], eax
jmp 0x44794b
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x18]
call fcn.00445a48
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x4472b7
cmp dword [ebp + 0x40], 0
je 0x447a5c
mov eax, dword [edi + 0x14]
xor esi, esi
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x3c], eax
jne 0x447a02
cmp dword [ebp + 0x4c], esi
mov byte [ebx], 0
je 0x447984
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.00445e08
pop ecx
pop ecx
mov dword [ebp + 0x3c], eax
cmp eax, esi
jne 0x4479d9
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x30]
push esi
call fcn.00445a48
add esp, 0xc
test eax, eax
jl 0x4472b7
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x4c]
add ecx, eax
mov dword [ebp + 0x3c], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [edi + 0x20]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
jmp 0x4479ff
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x447a02
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x3c]
call fcn.0044612a
add esp, 0xc
test eax, eax
jne 0x44909d
mov eax, dword [ebp + 0x3c]
mov byte [ebx], 0x5c
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x51
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [edi + 0x14]
mov byte [ebx - 1], al
mov byte [ebx], 0x54
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x28], 0xfffffffe
mov dword [ebp - 8], 9
jne 0x448fa4
or dword [ebp + 0x28], 0xffffffff
jmp 0x448fa4
cmp ecx, 0x1b
jl 0x447a9d
push 0xffffffffffffffe5
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x447a66
or dword [ebp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x4c]
mov byte [ebx], 0x50
mov dword [ebp + 0x48], ebx
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
xor eax, eax
inc ebx
inc eax
cmp ecx, 0x20
jge 0x447a86
shl eax, cl
or dword [edi + 0x3c], eax
cmp ecx, dword [edi + 0x38]
jle 0x448fa4
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x38], eax
jmp 0x448fa4
cmp ecx, 0x15
je 0x4490ab
cmp ecx, 0xe
je 0x4490ab
cmp ecx, 0xf
je 0x4490ab
cmp ecx, 5
jle 0x447ac7
cmp ecx, 0x16
jge 0x447ac7
mov dword [ebp + 0x48], ebx
jmp 0x447acb
and dword [ebp + 0x48], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x448fa4
cmp dword [ebp + 0x1c], 0
je 0x448621
cmp eax, 0x7f
jle 0x448621
lea ecx, [ebp - 0x34]
push ecx
push eax
jmp 0x448616
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x447b04
cmp al, 0x2e
je 0x447b04
cmp al, 0x3d
jne 0x447b1b
lea eax, [ebp - 0x2c]
push eax
mov eax, esi
call fcn.0044615c
test eax, eax
pop ecx
jne 0x4490b6
mov esi, dword [ebp + 0x50]
and dword [ebp + 0x18], 0
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
cmp eax, 0x5c
mov dword [ebp + 0x4c], eax
jne 0x447b50
inc esi
cmp byte [esi], 0x45
je 0x447b1f
push 3
push 0x467540
push esi
call fcn.004517bb
add esp, 0xc
test eax, eax
jne 0x447b64
mov esi, dword [ebp + 0x50]
add esi, 3
jmp 0x447b1f
cmp dword [ebp + 0x18], 0
jne 0x447b64
cmp eax, 0x5e
jne 0x447b64
mov dword [ebp + 0x18], 1
jmp 0x447b1f
or dword [ebp + 8], 0xffffffff
xor esi, esi
push 0x20
lea eax, [ebp - 0x54]
push esi
push eax
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x38], esi
call fcn.004512b0
mov dword [ebp + 0x3c], esi
add esp, 0xc
cmp dword [ebp + 0x4c], 0
lea esi, [ebx + 4]
mov dword [ebp - 0x24], esi
je 0x4490fc
cmp dword [ebp + 0x1c], 0
je 0x447bff
cmp dword [ebp + 0x4c], 0x7f
jle 0x447bff
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
cmp eax, 0xc0
mov dword [ebp + 0x4c], eax
jl 0x447bff
and eax, 0x3f
movzx eax, byte [eax + 0x467660]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x467644]
and eax, dword [ebp + 0x4c]
xor edx, edx
shl eax, cl
inc edx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
cmp eax, edx
jl 0x447bfc
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x4c], eax
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x20], eax
jle 0x447bdc
add dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x447c0f
mov ecx, esi
mov esi, dword [ebp - 0x24]
sub ecx, esi
add dword [eax], ecx
cmp dword [ebp + 4], 0
je 0x447c38
cmp dword [ebp + 0x4c], 0x5c
jne 0x44822b
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x44822b
and dword [ebp + 4], 0
mov dword [ebp + 0x50], eax
jmp 0x448528
cmp dword [ebp + 0x4c], 0x5b
jne 0x447d9e
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x447c58
cmp al, 0x2e
je 0x447c58
cmp al, 0x3d
jne 0x44822b
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x50]
call fcn.0044615c
test eax, eax
pop ecx
je 0x44822b
mov eax, dword [edi + 8]
and dword [ebp + 0x2c], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x4490d0
add dword [ebp + 0x50], 2
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x5e
jne 0x447c9c
xor eax, eax
inc eax
inc dword [ebp + 0x50]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 0x50]
push eax
push dword [ebp + 0x50]
call fcn.0044619c
test eax, eax
pop ecx
pop ecx
jl 0x4490db
test byte [ebp + 0x34], 1
je 0x447cc2
cmp eax, 2
jg 0x447cc2
xor eax, eax
imul eax, eax, 3
shl eax, 2
mov dword [ebp], eax
mov eax, dword [eax + 0x466a90]
add eax, dword [ebp + 0x40]
push 0x20
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.0044f8c0
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x466a94]
mov ecx, dword [ecx + 0x466a98]
add esp, 0xc
test eax, eax
mov dword [ebp], ecx
jl 0x447d3b
test ecx, ecx
mov edx, dword [ebp + 0x40]
jl 0x447d1f
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
or byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0x20
jl 0x447d0a
jmp 0x447d3b
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
not al
and byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0x20
jl 0x447d26
mov eax, dword [ebp]
test eax, eax
jge 0x447d44
neg eax
cmp eax, 1
jne 0x447d52
and byte [ebp - 0x93], 0xc3
jmp 0x447d5e
cmp eax, 2
jne 0x447d5e
and byte [ebp - 0x89], 0x7f
xor eax, eax
cmp dword [ebp + 0x2c], eax
je 0x447d7a
mov cl, byte [ebp + eax - 0x94]
not cl
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x447d65
jmp 0x447d8b
mov cl, byte [ebp + eax - 0x94]
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x447d7a
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], 0xa
jmp 0x448528
cmp dword [ebp + 0x4c], 0x5c
jne 0x44822b
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004455fe
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x449131
mov edx, dword [ebp + 0x4c]
neg edx
cmp edx, 5
jne 0x447de4
mov dword [ebp + 0x4c], 8
jmp 0x44822b
cmp edx, 0x15
jne 0x447df5
mov dword [ebp + 0x4c], 0x58
jmp 0x44822b
cmp edx, 0x10
jne 0x447e06
mov dword [ebp + 0x4c], 0x52
jmp 0x44822b
cmp edx, 0x19
jne 0x447e2c
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x447e20
add eax, 2
cmp byte [eax], 0x45
je 0x447c30
mov dword [ebp + 4], 1
jmp 0x448528
cmp edx, 0x18
je 0x448528
cmp dword [ebp + 0x4c], 0
jge 0x44822b
add dword [ebp + 0x38], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x447f5a
mov ecx, edx
sub ecx, 6
je 0x447f32
dec ecx
je 0x447f13
dec ecx
je 0x447ee4
dec ecx
je 0x447ebe
dec ecx
je 0x447e93
dec ecx
jne 0x447f93
and dword [ebp + 0x4c], ecx
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0xa0]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x447e75
jmp 0x448528
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x24], 1
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0xa0]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x447e9e
jmp 0x448528
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x54]
xor edx, edx
sub dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x20]
lea ecx, [ebp + edx - 0x54]
mov al, byte [ecx + eax]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x447ec9
and byte [ebp - 0x53], 0xf7
jmp 0x448528
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x54]
xor edx, edx
sub dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x20]
lea ecx, [ebp + edx - 0x54]
mov al, byte [ecx + eax]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x447ef6
or byte [ebp - 0x53], 8
jmp 0x448528
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0x40]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x447f17
jmp 0x448528
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x24], 1
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x54]
mov dl, byte [eax + edx + 0x40]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x447f3d
jmp 0x448528
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x448528
cmp eax, 0xfffffffa
je 0x448528
cmp eax, 0xfffffff5
je 0x448528
cmp eax, 0xfffffff6
je 0x448528
cmp eax, 0xfffffff7
je 0x448528
cmp eax, 0xfffffff8
je 0x448528
cmp edx, 0x12
jne 0x448034
or byte [ebp - 0x53], 2
or byte [ebp - 0x50], 1
or byte [ebp - 0x40], 1
cmp dword [ebp + 0x1c], 0
je 0x448528
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0044eda6
add esi, eax
push esi
push 0x200a
call fcn.0044eda6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0044eda6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0044eda6
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0044eda6
add esp, 0x38
add esi, eax
jmp 0x448528
cmp edx, 0x11
jne 0x448155
xor ecx, ecx
mov eax, ecx
dec eax
mov edx, 0xff
je 0x44805a
sub eax, 3
je 0x448053
sub eax, 0x10
jne 0x44805f
mov edx, 0xfe
jmp 0x44805f
mov edx, 0xfd
or byte [ebp + ecx - 0x54], dl
inc ecx
cmp ecx, 0x20
jl 0x44803f
cmp dword [ebp + 0x1c], 0
je 0x448528
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
add esi, eax
push esi
push 0x167f
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0044eda6
add esi, eax
push esi
push 0x180d
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0044eda6
add esi, eax
push esi
push 0x1fff
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0044eda6
add esi, eax
push esi
push 0x202e
call fcn.0044eda6
add esi, eax
add esp, 0x40
mov byte [esi], 2
inc esi
push esi
push 0x2030
call fcn.0044eda6
add esi, eax
push esi
push 0x205e
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0044eda6
add esi, eax
push esi
push 0x2fff
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0044eda6
add esi, eax
push esi
push bind
call fcn.0044eda6
add esp, 0x30
jmp 0x44802d
cmp edx, 0x14
jne 0x448197
or byte [ebp - 0x53], 0x3c
or byte [ebp - 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x448528
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
add esi, eax
push esi
push 0x2029
call fcn.0044eda6
add esp, 0x10
jmp 0x44802d
cmp edx, 0x13
jne 0x448214
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x4481b2
sub edx, 0xf
jne 0x4481b7
add ecx, 0xffffffe0
jmp 0x4481b7
mov ecx, 0xc3
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x44819e
cmp dword [ebp + 0x1c], 0
je 0x448528
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
add esi, eax
push esi
push 0x2027
call fcn.0044eda6
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0044eda6
add esi, eax
push esi
push bind
call fcn.0044eda6
add esp, 0x20
jmp 0x44802d
test byte [ebp + 0x34], 0x40
jne 0x4490e6
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
sub dword [ebp + 0x38], 2
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x50]
jmp 0x448241
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x448247
and dword [ebp + 4], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x448230
cmp dword [ebp + 0x4c], 0xd
mov dword [ebp], eax
je 0x448256
cmp dword [ebp + 0x4c], 0xa
jne 0x44825a
or dword [edi + 0x44], 0x20
cmp dword [ebp + 4], 0
jne 0x4484a3
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x4484a3
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4482b9
cmp byte [eax + 1], 0x45
jne 0x4482ab
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x44827e
jmp 0x4482ab
cmp byte [eax + 1], 0x51
jne 0x4482b9
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4482b2
cmp byte [eax + 1], 0x45
jne 0x4482b2
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x448290
jmp 0x4482b9
mov dword [ebp + 4], 1
mov al, byte [eax]
test al, al
je 0x44849d
cmp dword [ebp + 4], 0
jne 0x4482d1
cmp al, 0x5d
je 0x44849d
cmp dword [ebp + 0x1c], 0
je 0x448339
movzx edx, al
cmp edx, 0xc0
mov dword [ebp + 0x44], edx
jl 0x44833f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x467660]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x2c], eax
mov eax, dword [eax*4 + 0x467644]
and eax, edx
shl eax, cl
xor edx, edx
inc edx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
cmp eax, edx
jl 0x448334
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x44], eax
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x20], eax
jle 0x448314
add dword [ebp + 0x50], eax
jmp 0x44833f
movzx eax, al
mov dword [ebp + 0x44], eax
cmp dword [ebp + 4], 0
jne 0x4483a4
cmp dword [ebp + 0x44], 0x5c
jne 0x4483a4
push 1
push dword [ebp + 0x34]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004455fe
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x449131
mov eax, dword [ebp + 0x44]
test eax, eax
jge 0x4483a4
cmp eax, 0xfffffffb
jne 0x448386
mov dword [ebp + 0x44], 8
jmp 0x4483a4
cmp eax, 0xffffffeb
jne 0x448394
mov dword [ebp + 0x44], 0x58
jmp 0x4483a4
cmp eax, 0xfffffff0
jne 0x44849d
mov dword [ebp + 0x44], 0x52
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp + 0x4c]
jl 0x4490f1
je 0x4484a3
cmp eax, 0xd
je 0x4483c0
cmp eax, 0xa
jne 0x4483c4
or dword [edi + 0x44], 0x20
cmp dword [ebp + 0x1c], 0
je 0x448419
cmp eax, 0xff
jg 0x4483dc
test byte [ebp + 0x34], 1
je 0x448419
cmp eax, 0x7f
jle 0x448419
mov byte [esi], 2
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
add esi, eax
push esi
push dword [ebp + 0x44]
call fcn.0044eda6
add esp, 0x10
add esi, eax
test byte [ebp + 0x34], 1
je 0x448528
push 0x7f
pop eax
cmp dword [ebp + 0x4c], eax
jg 0x448528
mov dword [ebp + 0x44], eax
mov edx, dword [ebp + 0x38]
mov ecx, eax
sub ecx, dword [ebp + 0x4c]
cmp dword [ebp + 0x7c], 0
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x38], ecx
mov dword [ebp + 8], eax
jne 0x448528
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x4c], eax
jg 0x448528
mov eax, dword [ebp + 0x34]
and eax, 1
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
cmp dword [ebp + 0x2c], 0
je 0x44848d
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x44]
jle 0x44844a
jmp 0x448528
mov eax, dword [ebp]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x4484d9
cmp dword [ebp + 0x4c], 0xff
jg 0x4484be
test byte [ebp + 0x34], 1
je 0x4484d9
cmp dword [ebp + 0x4c], 0x7f
jle 0x4484d9
mov byte [esi], 1
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], 1
call fcn.0044eda6
pop ecx
pop ecx
jmp 0x44802d
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
test byte [ebp + 0x34], 1
je 0x44851f
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov dword [ebp + 0x4c], ecx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x38]
mov dword [ebp + 8], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
test eax, eax
mov dword [ebp + 0x4c], eax
je 0x4490fc
cmp eax, 0x5d
jne 0x447b92
cmp dword [ebp + 4], 0
jne 0x447b92
xor ecx, ecx
cmp dword [ebp + 0x38], 1
jne 0x448570
cmp dword [ebp + 0x3c], ecx
jne 0x448570
cmp dword [ebp + 0x1c], ecx
je 0x4485de
cmp dword [ebp + 0x18], ecx
je 0x4485de
mov eax, dword [ebp + 8]
cmp eax, 0x80
jl 0x4485e1
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x44857a
or dword [ebp + 0x28], 0xffffffff
cmp dword [ebp + 0x3c], ecx
mov eax, dword [ebp + 0x28]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4486df
cmp dword [ebp + 0x24], ecx
jne 0x4486df
mov byte [esi], 0
mov byte [ebx], 0x4f
add ebx, 3
inc esi
cmp dword [ebp + 0x18], ecx
setne al
cmp dword [ebp + 0x38], ecx
mov byte [ebx], al
jle 0x4486c4
or al, 2
mov byte [ebx], al
inc ebx
mov eax, esi
sub eax, ebx
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.00452e10
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0044f8c0
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x4486c6
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], edx
je 0x448605
cmp dword [ebp + 0x28], 0xfffffffe
jne 0x4485f6
or dword [ebp + 0x28], 0xffffffff
mov ecx, dword [ebp + 0x28]
mov byte [ebx], 0x1d
mov dword [ebp + 8], ecx
inc ebx
jmp 0x447acd
cmp dword [ebp + 0x1c], ecx
je 0x448621
cmp eax, 0x7f
jle 0x448621
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.0044eda6
pop ecx
mov esi, eax
pop ecx
jmp 0x448627
xor esi, esi
inc esi
mov byte [ebp - 0x34], al
test byte [ebp + 0x34], 1
mov dword [ebp + 0x48], ebx
setne al
add al, 0x1b
mov byte [ebx], al
inc ebx
xor eax, eax
test esi, esi
jle 0x448648
mov cl, byte [ebp + eax - 0x34]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x44863c
cmp byte [ebp - 0x34], 0xd
je 0x448654
cmp byte [ebp - 0x34], 0xa
jne 0x448658
or dword [edi + 0x44], 0x20
mov eax, dword [ebp + 0x28]
cmp eax, 0xfffffffe
jne 0x44869d
or dword [ebp + 8], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x44867e
cmp dword [ebp - 0x20], 0
je 0x44867e
or dword [ebp + 0xc], 0xffffffff
jmp 0x447a46
movzx eax, byte [ebp - 0x34]
or eax, dword [ebp - 0x20]
cmp esi, 1
mov dword [ebp + 0x28], eax
je 0x448fa4
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
jmp 0x447693
cmp esi, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
je 0x4486b5
cmp dword [ebp - 0x20], 0
jne 0x448fa4
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x48]
or eax, dword [ebp - 0x20]
jmp 0x447693
mov ebx, esi
mov eax, dword [ebp + 0x48]
mov ecx, ebx
sub ecx, eax
sar ecx, 8
mov byte [eax + 1], cl
mov cl, bl
sub cl, al
mov byte [eax + 2], cl
jmp 0x448fa4
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x24]
setne dl
add dl, 0x4d
mov byte [ebx], dl
inc ebx
cmp eax, ecx
je 0x44870e
cmp dword [ebp + 0x7c], ecx
jne 0x44871d
lea eax, [ebp - 0x54]
push 0x20
mov esi, ebx
sub eax, ebx
pop ecx
mov dl, byte [eax + esi]
not dl
mov byte [esi], dl
inc esi
dec ecx
jne 0x448701
jmp 0x44871d
push 0x20
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0044f8c0
add esp, 0xc
add ebx, 0x20
jmp 0x448fa4
mov dword [ebp + 0x30], 1
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x449107
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x44874d
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0xc], ecx
sub eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x40], 0
and dword [ebp + 0x3c], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x74], eax
mov dword [ebp + 0x10], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x448784
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x50], ecx
jmp 0x448793
cmp al, 0x3f
jne 0x448790
mov eax, dword [ebp - 0x6c]
mov dword [ebp + 0x50], ecx
jmp 0x448793
mov eax, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1b
mov dword [ebp + 0x44], eax
je 0x448c48
cmp cl, 0x1c
je 0x448c48
cmp cl, 0x1d
jne 0x4487e8
cmp dword [ebp + 0x3c], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x40], 0xd
mov dword [ebp + 0x4c], eax
jne 0x448cad
cmp dword [ebp + 0x30], 0
jge 0x448cad
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x4c]
push 0x1d
jmp 0x448c93
cmp cl, 0x16
jae 0x448825
cmp dword [ebp + 0x3c], 0
movzx eax, cl
mov dword [ebp + 0x40], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x448cad
cmp dword [ebp + 0x30], 0
jge 0x448cad
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push 0
push dword [ebp + 0x4c]
jmp 0x448c93
cmp cl, 0x4d
je 0x448bce
cmp cl, 0x4e
je 0x448bce
cmp cl, 0x4f
je 0x448bce
cmp cl, 0x50
je 0x448bce
cmp cl, 0x5d
je 0x448861
cmp cl, 0x5e
je 0x448861
cmp cl, 0x5c
je 0x448861
cmp cl, 0x5f
jne 0x449112
and dword [ebp], 0
and dword [ebp + 0x18], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5f
mov dword [ebp + 0x38], eax
jne 0x44887f
cmp byte [edx + 3], 0x65
je 0x44911d
cmp dword [ebp + 0x30], 0xffffffff
jne 0x44889d
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x448887
mov ecx, ebx
sub ecx, eax
mov dword [ebp], ecx
cmp dword [ebp + 0x14], 0
jne 0x448940
cmp dword [ebp + 0x30], 0
je 0x448bd4
cmp dword [ebp + 0x30], 1
push dword [ebp - 0xc]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x4488f0
push 1
push dword [ebp + 0x48]
call fcn.004461e6
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x38]
lea esi, [eax + 1]
push eax
push esi
call fcn.00452e10
mov al, byte [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
add esp, 0x1c
inc ebx
add al, 0x66
mov byte [ecx], al
mov dword [ebp + 0x48], esi
jmp 0x44892f
push 4
push dword [ebp + 0x48]
call fcn.004461e6
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.00452e10
mov cl, byte [ebp + 0x44]
mov eax, dword [ebp + 0x48]
add cl, 0x66
mov byte [eax], cl
add esp, 0x1c
add ebx, 4
inc eax
mov byte [eax], 0x5d
inc eax
mov dword [ebp + 0x18], eax
mov byte [eax], 0
mov byte [eax + 1], 0
inc eax
inc eax
mov dword [ebp + 0x48], eax
dec dword [ebp + 0x30]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
mov edi, dword [ebp + 0x78]
jmp 0x448a11
cmp dword [ebp + 0x14], 1
jle 0x448a04
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x448991
mov eax, dword [ebp + 0x14]
dec eax
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 8]
fild dword [ebp - 0x24]
fimul dword [ebp - 8]
mov dword [ebp + 0x2c], eax
fcomp qword [0x467538]
fnstsw ax
test ah, 0x41
je 0x449128
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x2c]
jl 0x449128
mov edx, dword [ebp + 0x2c]
add edx, eax
mov dword [ecx], edx
jmp 0x448a04
cmp dword [ebp - 0x5c], 0
je 0x4489a3
cmp dword [ebp + 0xc], 0
jge 0x4489a3
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0x14], 1
jle 0x448a04
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp - 0xc]
dec eax
mov dword [ebp + 0x2c], eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x40], eax
push ebx
call fcn.0044f8c0
add esp, 0xc
jmp 0x4489ee
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x38]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x38]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x40]
jb 0x4489ca
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x2c]
mov dword [ebp - 0xc], esi
jne 0x4489b3
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x30]
test ecx, ecx
jle 0x448a13
sub ecx, dword [ebp + 0x14]
mov dword [ebp + 0x30], ecx
test ecx, ecx
jl 0x448b6b
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x448a66
test ecx, ecx
jle 0x448a66
mov eax, dword [ebp - 8]
add eax, 7
mov dword [ebp - 0x24], eax
imul eax, ecx
fild dword [ebp - 0x24]
fimul dword [ebp + 0x30]
sub eax, 6
mov ecx, eax
fcomp qword [0x467538]
fnstsw ax
test ah, 0x41
je 0x449128
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x449128
add ecx, eax
mov dword [edx], ecx
jmp 0x448b23
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x24], eax
jl 0x448b23
mov al, byte [ebp + 0x44]
add al, 0x66
mov byte [ebp - 0xd], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 0xd]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x24], 0
mov dword [ebp + 0x2c], esi
je 0x448aae
mov eax, dword [ebp + 0x18]
mov byte [ebx], 0x5d
inc ebx
mov ecx, ebx
sub ecx, eax
neg eax
sbb eax, eax
and eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [ebp + 0x18], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x38]
push dword [ebp + 0x48]
push ebx
call fcn.0044f8c0
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, esi
jae 0x448b11
mov esi, dword [ebp + 0x24]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x24], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp - 0x15], cl
mov edx, dword [edi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, esi
add ecx, dword [ebp + 0x38]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp - 0x15]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 0x38]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x2c]
jb 0x448ae0
mov esi, dword [ebp + 0x2c]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x24]
mov dword [ebp - 0xc], esi
jns 0x448a7c
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x448e8b
mov esi, dword [ebp + 0x18]
xor edx, edx
mov ecx, ebx
sub ecx, esi
inc ecx
mov eax, ebx
sub eax, ecx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov byte [ebx], 0x54
mov byte [ebx + 2], cl
sub esi, edx
mov dword [ebp + 0x2c], edx
neg edx
sbb edx, edx
and esi, edx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
inc ebx
inc ebx
test esi, esi
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jne 0x448b30
jmp 0x448e88
xor eax, eax
mov esi, ebx
sub esi, dword [ebp]
mov ah, byte [esi + 1]
mov edi, esi
mov al, byte [esi + 2]
sub edi, eax
mov al, byte [ebp + 0x44]
add al, 0x55
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x448e88
cmp byte [edi], 0x5c
je 0x448e88
mov dword [ebp + 0x40], edi
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x40]
call fcn.00445f3d
add esp, 0xc
test eax, eax
jne 0x448bc6
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
mov dword [ebp + 0x40], eax
je 0x448b99
jmp 0x448e88
add byte [edi], 3
jmp 0x448e88
cmp dword [ebp + 0x30], 0
jne 0x448bdb
mov ebx, edx
jmp 0x448f97
mov ecx, dword [ebp + 0x30]
cmp ecx, 1
je 0x448be7
or dword [edi + 0x44], 1
cmp dword [ebp + 0x14], 0
jne 0x448bf9
cmp ecx, 0xffffffff
jne 0x448c0b
add al, 0x45
jmp 0x448e85
cmp dword [ebp + 0x14], 1
jne 0x448c17
cmp ecx, 0xffffffff
jne 0x448c17
add al, 0x47
jmp 0x448e85
cmp ecx, 1
jne 0x448c17
add al, 0x49
jmp 0x448e85
add al, 0x4b
mov byte [ebx], al
mov eax, dword [ebp + 0x14]
inc ebx
mov edx, eax
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
inc ebx
inc ebx
cmp ecx, 0xffffffff
jne 0x448c37
and dword [ebp + 0x30], 0
mov ecx, dword [ebp + 0x30]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x448e88
cmp dword [ebp + 0x1c], 0
je 0x448c56
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x448cc5
cmp dword [ebp + 0x14], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x448c6e
mov edi, dword [edi + 0x48]
or edi, eax
or edi, dword [ebp - 0x20]
mov dword [ebp + 0xc], edi
cmp dword [ebp + 0x3c], 0
jne 0x448cad
cmp dword [ebp + 0x30], 0
jge 0x448cad
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x48]
movzx eax, byte [eax]
push dword [ebp + 0x4c]
push eax
mov edi, dword [ebp + 0x78]
call fcn.004462ac
add esp, 0x18
test eax, eax
je 0x448cad
and dword [ebp + 0x44], 0
mov dword [ebp + 0x3c], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xf
je 0x448ceb
cmp al, 0xe
je 0x448ceb
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x24], 0xffffffff
jmp 0x448cf9
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x448cc4
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x68]
push eax
call fcn.0044f8c0
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x448c6e
movzx eax, byte [ecx + 1]
mov dword [ebp + 0x24], eax
movzx eax, byte [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x30], 0
mov esi, ebx
mov ebx, ecx
je 0x448f97
mov edx, dword [ebp + 0x30]
cmp edx, 1
je 0x448d16
mov eax, dword [ebp + 0x78]
or dword [eax + 0x44], 1
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x40]
add eax, ecx
cmp dword [ebp + 0x14], 0
mov dword [ebp + 0x44], eax
jne 0x448d4b
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x448de7
cmp edx, 1
je 0x448e43
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x448e54
cmp dword [ebp + 0x14], 1
jne 0x448d8a
cmp edx, 0xffffffff
jne 0x448d60
mov ebx, dword [ebp + 0x48]
add al, 0x20
jmp 0x448e45
cmp edx, 1
mov ebx, esi
je 0x448f97
mov al, byte [ebp + 0x44]
add al, 0x24
mov byte [esi], al
mov eax, dword [ebp + 0x30]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x448e59
mov ebx, dword [ebp + 0x48]
add cl, 0x26
mov byte [ebx], cl
mov ecx, dword [ebp + 0x14]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x14]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x448deb
cmp dword [ebp + 0x1c], 0
je 0x448dd1
cmp dword [ebp + 0x4c], 0x80
jl 0x448dd1
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8c0
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x448de7
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x24]
inc ebx
test ecx, ecx
jl 0x448de7
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1e
jmp 0x448e45
mov ecx, dword [ebp + 0x14]
cmp dword [ebp + 0x30], ecx
je 0x448e5b
cmp dword [ebp + 0x1c], 0
je 0x448e1d
cmp dword [ebp + 0x4c], 0x80
jl 0x448e1d
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8c0
mov eax, dword [ebp + 0x44]
add esp, 0xc
add ebx, esi
jmp 0x448e23
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x24], 0
mov ecx, dword [ebp + 0x30]
jl 0x448e38
mov dl, byte [ebp + 0x24]
mov byte [ebx], dl
mov dl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [ebp + 0x14]
cmp ecx, 1
mov dword [ebp + 0x30], ecx
jne 0x448e4a
add al, 0x22
mov byte [ebx], al
inc ebx
jmp 0x448e5b
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, ecx
mov byte [ebx + 1], cl
sar eax, 8
mov byte [ebx], al
inc ebx
inc ebx
cmp dword [ebp + 0x1c], 0
je 0x448e82
cmp dword [ebp + 0x4c], 0x80
jl 0x448e82
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.0044f8c0
add esp, 0xc
add ebx, esi
jmp 0x448e88
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0x3c], 0
je 0x448f97
mov cl, byte [esi]
cmp cl, 0x26
je 0x448ea6
cmp cl, 0x40
je 0x448eab
cmp cl, 0x33
jne 0x448ece
cmp cl, 0x40
jne 0x448ebb
mov al, byte [esi + 3]
cmp al, 0xf
je 0x448eb6
cmp al, 0xe
jne 0x448ebb
push 2
pop eax
jmp 0x448ebd
xor eax, eax
movzx ecx, cl
movzx ecx, byte [ecx + 0x4675a0]
add ecx, eax
add esi, ecx
mov dword [ebp + 0x10], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x2c], eax
jle 0x448f97
movzx eax, byte [esi]
cmp eax, 0x2f
jg 0x448f2d
je 0x448f28
sub eax, 0x1e
je 0x448f23
push 2
pop ecx
sub eax, ecx
je 0x448f1e
sub eax, ecx
je 0x448f19
sub eax, ecx
je 0x448f14
sub eax, 7
je 0x448f0c
sub eax, ecx
jne 0x448f43
mov byte [esi], 0x35
jmp 0x448f97
mov byte [esi], 0x34
jmp 0x448f97
mov byte [esi], 0x2a
jmp 0x448f97
mov byte [esi], 0x29
jmp 0x448f97
mov byte [esi], 0x28
jmp 0x448f97
mov byte [esi], 0x27
jmp 0x448f97
mov byte [esi], 0x36
jmp 0x448f97
sub eax, 0x31
je 0x448f94
sub eax, 7
je 0x448f8f
dec eax
dec eax
je 0x448f8a
dec eax
dec eax
je 0x448f85
dec eax
dec eax
je 0x448f80
push dword [ebp + 0x2c]
push esi
add esi, 3
push esi
call fcn.00452e10
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x2c]
mov byte [eax], 0x5c
add ecx, 3
add ebx, 3
mov byte [ebx], 0x54
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x10]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x10]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x448f97
mov byte [esi], 0x44
jmp 0x448f97
mov byte [esi], 0x43
jmp 0x448f97
mov byte [esi], 0x42
jmp 0x448f97
mov byte [esi], 0x41
jmp 0x448f97
mov byte [esi], 0x37
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x48], eax
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x446a0e
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x449131
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x449131
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x449131
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x449131
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3e
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x449131
mov ecx, dword [ebp + 0x50]
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov ecx, dword [ebp + 0x68]
mov dword [ecx], eax
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x449131
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x14
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x64]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret