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

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xc4
mov eax, dword [ebp + 0x5c]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x60]
push ebx
mov ebx, dword [eax]
mov eax, dword [ebp + 0x64]
push esi
mov esi, dword [ebp + 0x78]
push edi
mov edi, dword [eax]
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0x4c], eax
xor eax, 1
mov dword [ebp - 0x48], eax
xor edx, edx
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x38], eax
mov eax, ecx
and eax, 1
shl eax, 8
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x2c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x20], edx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x4c], edx
mov dword [ebp + 8], edx
mov dword [ebp + 4], edx
mov dword [ebp - 0x10], eax
movzx eax, byte [edi]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x44], eax
mov eax, dword [esi + 0x10]
add eax, 0x1000
cmp ecx, edx
je 0x444825
cmp ebx, eax
ja 0x44635b
cmp ebx, dword [ebp - 0xc]
jae 0x4447df
mov ebx, dword [ebp - 0xc]
mov eax, ebx
sub eax, dword [ebp - 0xc]
xor edx, edx
add dword [ecx], eax
mov eax, dword [ebp + 0x4c]
cmp eax, edx
je 0x44481a
cmp eax, dword [ebp - 0x24]
jbe 0x44481d
mov edi, dword [ebp - 0x24]
mov eax, ebx
sub eax, dword [ebp + 0x4c]
push eax
push dword [ebp + 0x4c]
push edi
call fcn.0044af60
mov eax, edi
sub eax, dword [ebp + 0x4c]
add esp, 0xc
add ebx, eax
mov dword [ebp + 0x4c], edi
mov edi, dword [ebp + 0x50]
xor edx, edx
jmp 0x44481d
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp - 0xc], ebx
jmp 0x44482e
cmp dword [esi + 0x20], eax
ja 0x44635b
cmp dword [ebp + 0x10], edx
je 0x44488f
cmp dword [ebp + 0x44], edx
je 0x44488f
cmp dword [ebp + 0x44], 0x5c
jne 0x444851
lea eax, [edi + 1]
cmp byte [eax], 0x45
jne 0x444851
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x50], eax
jmp 0x445223
cmp dword [ebp + 8], edx
je 0x444870
cmp ecx, edx
jne 0x44486d
mov ecx, dword [ebp + 8]
push esi
mov eax, edi
call fcn.0044436e
mov edi, dword [ebp + 0x50]
add esp, 4
xor edx, edx
mov dword [ebp + 8], edx
test word [ebp + 0x2c], 0x4000
je 0x4452c2
mov ecx, edi
mov eax, ebx
mov dword [ebp + 8], ebx
call fcn.0044434a
mov ebx, eax
jmp 0x4452c2
mov eax, dword [ebp + 0x44]
cmp eax, 0x2a
je 0x444904
cmp eax, 0x2b
je 0x444904
cmp eax, 0x3f
je 0x444904
cmp eax, 0x7b
jne 0x4448b2
lea eax, [edi + 1]
call fcn.00443c4c
test eax, eax
jne 0x444904
and dword [ebp + 0x3c], 0
cmp dword [ebp + 8], 0
je 0x4448e1
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
test eax, eax
jg 0x4448e1
cmp dword [ebp + 0x7c], 0
jne 0x4448dd
mov ecx, dword [ebp + 8]
push esi
mov eax, edi
call fcn.0044436e
mov edi, dword [ebp + 0x50]
add esp, 4
and dword [ebp + 8], 0
test byte [ebp + 0x2c], 8
je 0x444956
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x44]
test byte [ecx + eax], 1
jne 0x445223
cmp ecx, 0x23
mov edi, dword [ebp + 0x50]
jne 0x444956
jmp 0x4449e1
mov dword [ebp + 0x3c], 1
jmp 0x4448e1
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x4449bb
mov eax, dword [esi + 0x1c]
cmp edi, eax
jae 0x4449e1
push 0
lea edx, [esi + 0x4c]
push edx
push eax
push ecx
push edi
call fcn.004492f7
mov edi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x4449e1
mov eax, dword [esi + 0x4c]
lea edi, [edi + eax - 1]
mov dword [ebp + 0x50], edi
cmp byte [edi], 0
jne 0x445223
and dword [ebp + 0x44], 0
xor ecx, ecx
inc ecx
test word [ebp + 0x2c], 0x4000
je 0x44497b
cmp dword [ebp + 0x3c], 0
jne 0x44497b
mov ecx, edi
mov eax, ebx
mov dword [ebp + 8], ebx
call fcn.0044434a
mov edi, dword [ebp + 0x50]
xor ecx, ecx
mov ebx, eax
inc ecx
mov eax, dword [ebp + 0x44]
cmp eax, 0x2e
jg 0x44526a
je 0x445249
xor edx, edx
sub eax, edx
je 0x44528f
sub eax, 0x24
je 0x44523e
sub eax, 4
je 0x444a00
dec eax
je 0x44528f
dec eax
je 0x4449f4
dec eax
jne 0x4452c2
mov dword [ebp + 0x24], ecx
jmp 0x4449f7
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x1c]
sub edx, ecx
cmp edi, edx
ja 0x4449e1
cmp al, byte [esi + 0x50]
jne 0x4449e1
cmp ecx, 1
je 0x44493f
mov al, byte [edi + 1]
cmp al, byte [esi + 0x51]
je 0x44493f
inc edi
mov dword [ebp + 0x50], edi
mov al, byte [edi]
test al, al
jne 0x44490d
jmp 0x444952
mov dword [ebp + 0x24], edx
or dword [ebp + 0x34], 0xffffffff
jmp 0x445c2f
mov eax, dword [ebp + 0x2c]
inc edi
mov dword [ebp + 0x3c], edx
mov edx, dword [esi + 0x20]
mov dword [ebp + 0x50], edi
cmp byte [edi], 0x3f
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x40], 0x59
mov dword [ebp + 4], edx
jne 0x44519c
inc edi
mov dword [ebp + 0x50], edi
mov dl, byte [edi]
movzx eax, dl
cmp eax, 0x3a
jg 0x444db3
je 0x444da3
cmp eax, 0x21
je 0x444cbf
cmp eax, 0x23
je 0x444c90
cmp eax, 0x26
je 0x444c85
cmp eax, 0x27
je 0x445019
cmp eax, 0x28
je 0x444a7b
cmp eax, 0x2f
jle 0x444de4
cmp eax, 0x39
jle 0x444eff
jmp 0x444de4
cmp byte [edi + 1], 0x3f
mov dword [ebp + 0x40], 0x5a
jne 0x444aa3
mov al, byte [edi + 2]
cmp al, 0x3d
je 0x44517d
cmp al, 0x21
je 0x44517d
cmp al, 0x3c
je 0x44517d
mov byte [ebx + 3], 0x5e
mov edx, dword [ebp + 0x50]
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x3c], 3
jne 0x444ad0
add edx, 2
cmp byte [edx], 0x26
jne 0x444ad0
or dword [ebp + 0x48], 0xffffffff
mov dword [ebp + 0x50], edx
mov byte [ebx + 3], 0x5f
jmp 0x444af3
cmp cl, 0x3c
jne 0x444ade
mov dword [ebp + 0x48], 0x3e
jmp 0x444aea
cmp cl, 0x27
jne 0x444aef
mov dword [ebp + 0x48], 0x27
mov dword [ebp + 0x50], eax
jmp 0x444af3
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x50]
mov edx, dword [esi + 0xc]
inc eax
movzx ecx, byte [eax]
test byte [ecx + edx], 0x10
je 0x446369
and dword [ebp + 0x44], 0
mov ecx, eax
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
mov dword [ebp + 0x30], ecx
je 0x444b4b
cmp dword [ebp + 0x44], 0
jl 0x444b3e
test byte [eax + 0x45a1c8], 4
je 0x444b3a
mov edi, dword [ebp + 0x44]
imul edi, edi, 0xa
lea eax, [edi + eax - 0x30]
mov dword [ebp + 0x44], eax
jmp 0x444b3e
or dword [ebp + 0x44], 0xffffffff
inc ecx
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
jne 0x444b1c
mov eax, ecx
sub eax, dword [ebp + 0x30]
cmp dword [ebp + 0x48], 0
mov dword [ebp + 0x28], eax
jle 0x444b69
movzx eax, byte [ecx]
inc ecx
cmp eax, dword [ebp + 0x48]
mov dword [ebp + 0x50], ecx
jne 0x44637a
mov al, byte [ecx]
inc ecx
cmp al, 0x29
mov dword [ebp + 0x50], ecx
jne 0x44637a
cmp dword [ebp + 0x7c], 0
jne 0x44517d
and dword [ebp + 0x4c], 0
cmp dword [esi + 0x28], 0
mov edi, dword [esi + 0x24]
jle 0x444bb5
push dword [ebp + 0x28]
lea eax, [edi + 2]
push eax
push dword [ebp + 0x30]
call fcn.0044a590
add esp, 0xc
test eax, eax
je 0x444bb2
add edi, dword [esi + 0x2c]
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [esi + 0x28]
jl 0x444b8e
mov ecx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [esi + 0x28]
jge 0x444bd4
xor eax, eax
mov ah, byte [edi]
mov al, byte [edi + 1]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x44517d
mov eax, dword [ebp + 0x2c]
shr eax, 3
xor edi, edi
inc edi
and eax, edi
push eax
push dword [ebp + 0x28]
mov eax, dword [esi + 0x30]
push dword [ebp + 0x30]
call fcn.00443d43
add esp, 0xc
test eax, eax
jg 0x444bc4
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
jne 0x44638c
mov edx, dword [ebp + 0x30]
cmp byte [edx], 0x52
jne 0x444c45
cmp dword [ebp + 0x28], edi
jle 0x444c2f
movzx eax, byte [edi + edx]
test byte [eax + 0x45a1c8], 4
je 0x44638c
imul ecx, ecx, 0xa
inc edi
cmp edi, dword [ebp + 0x28]
lea ecx, [ecx + eax - 0x30]
jl 0x444c0d
test ecx, ecx
jne 0x444c34
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x5f
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x44517a
cmp dword [ebp + 0x28], 6
jne 0x444c6b
push 6
push str.DEFINE
push edx
call fcn.0044a590
add esp, 0xc
test eax, eax
jne 0x444c6b
mov byte [ebx + 3], 0x60
mov dword [ebp + 0x3c], edi
jmp 0x44517d
mov eax, dword [ebp + 0x44]
test eax, eax
jg 0x444bc4
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x44644b
push 0x29
pop edx
mov dword [ebp + 0x3c], ecx
jmp 0x4453cd
inc edi
mov dword [ebp + 0x50], edi
mov al, byte [edi]
test al, al
je 0x444cb1
cmp al, 0x29
je 0x444ca8
inc edi
mov dword [ebp + 0x50], edi
mov al, byte [edi]
test al, al
jne 0x444c9a
cmp byte [edi], 0
jne 0x445223
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x4464b0
mov dword [ebp + 0x40], 0x53
inc edi
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], edi
mov ecx, dword [ebp + 0x40]
mov byte [ebx], cl
mov eax, dword [esi + 0x40]
mov dword [ebp + 0x48], eax
xor eax, eax
cmp ecx, 0x54
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 4], eax
je 0x444ceb
cmp ecx, 0x55
jne 0x444cee
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 4]
and ecx, edx
push ecx
push esi
push dword [ebp + 0x74]
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp + 0x3c]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x2c]
and eax, 7
push eax
push dword [ebp + 0x20]
call fcn.004464c2
add esp, 0x30
test eax, eax
je 0x4464b0
mov edi, dword [ebp + 0x40]
cmp edi, 0x5a
jne 0x444d62
mov eax, ebx
xor esi, esi
xor ecx, ecx
mov ch, byte [eax + 1]
inc esi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4f
jne 0x444d3c
cmp byte [ebx + 3], 0x60
jne 0x4451ab
cmp esi, 1
jg 0x4463f5
push 0x60
pop edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x29
jne 0x446411
mov eax, dword [ebp + 0x7c]
xor edx, edx
cmp eax, edx
je 0x4451cb
mov ecx, dword [ebp - 4]
add ecx, 0xfffffffa
add dword [eax], ecx
inc ebx
mov byte [ebx], dl
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x4f
inc ebx
mov byte [ebx], dl
mov byte [ebx + 1], 3
mov ecx, dword [ebp - 0x14]
inc ebx
inc ebx
jmp 0x4451ce
mov dword [ebp + 0x40], 0x58
inc edi
mov dword [ebp + 0x50], edi
jmp 0x44517d
sub eax, 0x3c
je 0x444ff6
dec eax
je 0x444fea
dec eax
je 0x444fde
sub eax, 5
je 0x444f73
sub eax, 0xd
je 0x444f39
dec eax
dec eax
je 0x444efb
xor eax, eax
xor edi, edi
cmp dl, 0x29
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x48], edi
lea ecx, [ebp + 0x48]
je 0x444e7a
cmp dl, 0x3a
je 0x444e74
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x444e4a
je 0x444e45
cmp eax, 0x2d
je 0x444e40
cmp eax, 0x4a
je 0x444e31
cmp eax, 0x55
je 0x444e29
cmp eax, 0x58
jne 0x44639a
or dword [ecx], 0x40
jmp 0x444e6a
or dword [ecx], 0x200
jmp 0x444e6a
or dword [ecx], 0x80000
or dword [esi + 0x3c], 0x8000000
jmp 0x444e6a
lea ecx, [ebp + 0x40]
jmp 0x444e6a
or dword [ecx], 1
jmp 0x444e6a
cmp eax, 0x6d
je 0x444e67
cmp eax, 0x73
je 0x444e62
cmp eax, 0x78
jne 0x44639a
or dword [ecx], 8
jmp 0x444e6a
or dword [ecx], 4
jmp 0x444e6a
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x444dfa
mov edi, dword [ebp + 0x48]
mov eax, dword [ebp + 0x40]
or edi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x50]
not eax
and edi, eax
cmp byte [ecx], 0x29
mov eax, edi
mov dword [ebp + 0x20], eax
jne 0x444eec
mov ecx, dword [esi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x444eaf
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x444ea4
cmp dword [ecx], 6
jne 0x444eaf
mov dword [esi + 0x3c], eax
mov dword [ebp + 0x2c], eax
jmp 0x444fd5
mov ecx, eax
xor ecx, dword [ebp + 0x2c]
test cl, 7
je 0x444ec5
mov byte [ebx], 0x13
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 + 0x2c], eax
mov dword [ebp - 0x4c], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x10], eax
jmp 0x444fd5
inc dword [ebp + 0x50]
mov dword [ebp + 0x40], 0x58
jmp 0x44517d
inc edi
mov dword [ebp + 0x50], edi
and dword [ebp + 0x44], 0
jmp 0x444f16
mov ecx, dword [ebp + 0x44]
imul ecx, ecx, 0xa
lea eax, [ecx + eax - 0x30]
inc edi
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x50], edi
movzx eax, byte [edi]
test byte [eax + 0x45a1c8], 4
jne 0x444f05
cmp byte [edi], 0x29
je 0x44548f
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x4464b0
inc edi
mov dword [ebp + 0x50], edi
mov dl, byte [edi]
cmp dl, 0x3d
je 0x444f60
cmp dl, 0x3e
je 0x444f60
cmp dl, 0x3c
je 0x445019
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x4464b0
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
pop edx
mov dword [ebp + 0x3c], eax
jmp 0x4453cd
mov byte [ebx], 0x4d
mov edi, dword [ebp + 0x50]
mov dword [ebp + 8], ebx
inc ebx
mov dword [ebp - 0x18], ecx
xor edx, edx
jmp 0x444f8b
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
inc edi
mov dword [ebp + 0x50], edi
movzx eax, byte [edi]
test byte [eax + 0x45a1c8], 4
jne 0x444f84
cmp byte [edi], 0x29
jne 0x4463ab
cmp edx, 0xff
jg 0x4463b9
mov byte [ebx], dl
mov eax, dword [ebp + 0x50]
sub eax, dword [esi + 0x18]
inc ebx
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ebp + 0x50]
sub al, byte [esi + 0x18]
mov byte [ebx + 2], 0
inc al
mov byte [ebx + 1], al
mov byte [ebx + 3], 0
add ebx, 4
and dword [ebp + 0x4c], 0
jmp 0x445223
mov dword [ebp + 0x40], 0x57
jmp 0x444daa
mov dword [ebp + 0x40], 0x52
jmp 0x444cc6
mov al, byte [edi + 1]
cmp al, 0x21
je 0x445193
cmp al, 0x3d
je 0x445185
mov ecx, dword [esi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x4463e3
mov ecx, dword [esi + 0xc]
xor eax, eax
cmp dl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x48], eax
movzx eax, byte [edi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x30], edi
je 0x44504d
mov eax, ecx
inc edi
mov dword [ebp + 0x50], edi
movzx ecx, byte [edi]
test byte [ecx + eax], 0x10
jne 0x445040
mov eax, edi
sub eax, dword [ebp + 0x30]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x28], eax
je 0x44509a
movzx ecx, byte [edi]
cmp ecx, dword [ebp + 0x48]
jne 0x4463c7
cmp dword [esi + 0x28], 0x2710
jge 0x4463d5
lea ecx, [eax + 3]
cmp ecx, dword [esi + 0x2c]
jle 0x44515d
cmp eax, 0x20
mov dword [esi + 0x2c], ecx
jle 0x44515d
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x4464b0
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
and dword [ebp + 0x4c], 0
test eax, eax
mov dword [ebp + 0x48], edi
jle 0x44512f
mov edi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x28]
mov esi, dword [ebp + 0x30]
add edi, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4450c6
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
jne 0x4450f3
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x48]
cmp byte [edx + ecx + 2], 0
jne 0x4450ee
test dword [ebp + 0x2c], 0x80000
jne 0x4450f5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x4464b0
or edx, 0xffffffff
test edx, edx
jl 0x44510d
mov ecx, dword [ebp + 0x78]
mov edx, dword [ecx + 0x2c]
add dword [ebp + 0x48], edx
inc dword [ebp + 0x4c]
mov edx, dword [ebp + 0x4c]
cmp edx, dword [ecx + 0x28]
jl 0x4450af
mov esi, ecx
jmp 0x44512c
sub eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x78]
mov ecx, dword [ecx + 0x2c]
imul eax, ecx
push eax
mov eax, dword [ebp + 0x48]
push eax
add ecx, eax
push ecx
call fcn.0044af60
mov esi, dword [ebp + 0x78]
add esp, 0xc
mov edi, dword [ebp + 0x48]
mov eax, dword [esi + 0x30]
push dword [ebp + 0x28]
inc eax
push dword [ebp + 0x30]
sar eax, 8
mov byte [edi], al
mov al, byte [esi + 0x30]
inc al
mov byte [edi + 1], al
lea eax, [edi + 2]
push eax
call fcn.0044a6b0
mov eax, dword [ebp + 0x28]
mov byte [edi + eax + 2], 0
mov edi, dword [ebp + 0x50]
add esp, 0xc
inc edi
inc dword [esi + 0x28]
mov dword [ebp + 0x50], edi
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
sar eax, 8
mov byte [ebx + 3], al
mov al, byte [esi + 0x30]
mov dword [ebp + 0x3c], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x4c], ebx
jmp 0x444cce
mov dword [ebp + 0x40], 0x54
inc edi
inc edi
jmp 0x444cc7
mov dword [ebp + 0x40], 0x55
jmp 0x44518c
test ax, 0x1000
je 0x445164
mov dword [ebp + 0x40], 0x58
jmp 0x44517d
cmp esi, 2
jg 0x446403
cmp esi, 1
jne 0x444d62
or ecx, 0xffffffff
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], ecx
jmp 0x444d65
mov ebx, dword [ebp + 0x1c]
cmp edi, 0x60
je 0x445220
cmp edi, 0x57
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x20], edx
jl 0x445230
cmp eax, 0xfffffffe
jne 0x445206
cmp ecx, edx
jl 0x4451fc
mov dword [ebp + 0x38], ecx
mov dword [ebp - 0x20], 1
jmp 0x445200
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0xc], 0xffffffff
jmp 0x445215
cmp ecx, edx
jl 0x445215
cmp dword [ebp - 8], edx
jge 0x44521a
or ecx, dword [ebp + 0x48]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], edx
jl 0x445220
mov eax, dword [ebp - 8]
mov dword [ebp + 0x14], eax
mov esi, dword [ebp + 0x78]
inc dword [ebp + 0x50]
mov edi, dword [ebp + 0x50]
xor edx, edx
jmp 0x4447ba
cmp edi, 0x52
jne 0x445220
mov eax, dword [ebp - 8]
cmp eax, edx
jl 0x445220
jmp 0x44521d
mov dword [ebp + 0x4c], edx
mov byte [ebx], 0x15
jmp 0x44530c
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x445253
or dword [ebp + 0x38], 0xffffffff
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x4c], ebx
mov byte [ebx], 0xb
jmp 0x44530c
sub eax, 0x3f
je 0x445c28
sub eax, 0x1c
je 0x445609
dec eax
je 0x445312
dec eax
dec eax
je 0x4452f5
sub eax, 0x1d
je 0x4452bc
dec eax
jne 0x4452c2
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x38]
mov dword [eax], edx
mov eax, dword [ebp + 0x70]
mov edx, dword [ebp + 0x14]
mov dword [eax], edx
mov eax, dword [ebp + 0x60]
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], edi
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x4452b5
sub ebx, dword [ebp - 0xc]
add dword [eax], ebx
mov eax, ecx
jmp 0x4464ba
cmp dword [ebp + 0x3c], 0
jne 0x4452ca
mov al, byte [ebp + 0x44]
jmp 0x445b88
mov esi, dword [ebp + 0x68]
push esi
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
lea eax, [edi + 1]
call fcn.00443cae
add esp, 0xc
cmp dword [esi], 0
mov dword [ebp + 0x50], eax
jne 0x4464b0
mov esi, dword [ebp + 0x78]
jmp 0x445c2f
test byte [ebp + 0x2c], 2
je 0x445305
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x445305
or dword [ebp + 0x38], 0xffffffff
and dword [ebp + 0x4c], 0
mov byte [ebx], 0x14
inc ebx
jmp 0x445223
push 0
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [esi + 0x30]
mov dword [ebp - 0x1c], edi
push dword [ebp + 0x68]
push eax
call fcn.00443994
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x4464b0
test eax, eax
jge 0x445b85
mov ecx, eax
neg ecx
cmp ecx, 0x14
jne 0x44536e
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x445362
add eax, 2
cmp byte [eax], 0x45
jne 0x445362
mov dword [ebp + 0x50], eax
jmp 0x445220
mov dword [ebp + 0x10], 1
jmp 0x445220
cmp ecx, 0x13
je 0x445220
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x44538b
cmp ecx, 4
jle 0x44538b
cmp ecx, 0x11
jge 0x44538b
or dword [ebp + 0x38], 0xffffffff
cmp ecx, 0x15
mov edx, dword [ebp + 0x38]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 0x14]
mov dword [ebp + 0x18], edx
jne 0x445583
mov edi, dword [ebp + 0x50]
inc edi
mov dl, byte [edi]
cmp dl, 0x3c
je 0x4453b4
cmp dl, 0x27
jne 0x445583
and dword [ebp + 0x3c], 0
mov esi, dword [ebp + 0x78]
xor edx, edx
mov dword [ebp + 0x50], edi
cmp byte [edi], 0x3c
setne dl
dec edx
and edx, 0x17
add edx, 0x27
mov ecx, dword [esi + 0xc]
inc edi
mov dword [ebp + 0x50], edi
movzx eax, byte [edi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x30], edi
je 0x4453ef
mov eax, ecx
inc edi
mov dword [ebp + 0x50], edi
movzx ecx, byte [edi]
test byte [ecx + eax], 0x10
jne 0x4453e2
mov eax, edi
sub eax, dword [ebp + 0x30]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x28], eax
je 0x445417
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x4463c7
cmp eax, 0x20
jg 0x44508c
and dword [ebp + 0x44], 0
jmp 0x445485
and dword [ebp + 0x4c], 0
cmp dword [esi + 0x28], 0
mov edi, dword [esi + 0x24]
jle 0x445448
push dword [ebp + 0x28]
lea eax, [edi + 2]
push eax
push dword [ebp + 0x30]
call fcn.0044a590
add esp, 0xc
test eax, eax
je 0x445448
add edi, dword [esi + 0x2c]
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [esi + 0x28]
jl 0x445424
mov eax, dword [ebp + 0x4c]
cmp eax, dword [esi + 0x28]
jge 0x44545c
xor eax, eax
mov ah, byte [edi]
mov al, byte [edi + 1]
mov dword [ebp + 0x44], eax
jmp 0x445485
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x28]
mov eax, dword [esi + 0x30]
push dword [ebp + 0x30]
call fcn.00443d43
add esp, 0xc
test eax, eax
mov dword [ebp + 0x44], eax
jle 0x44638c
cmp dword [ebp + 0x3c], 0
je 0x445593
mov eax, dword [esi + 0x14]
xor edi, edi
cmp dword [ebp + 0x7c], edi
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x48], eax
jne 0x445536
cmp dword [ebp + 0x44], edi
mov byte [ebx], 0
je 0x4454ba
push dword [ebp + 0x44]
mov eax, dword [esi + 0x14]
call fcn.00444079
pop ecx
mov dword [ebp + 0x48], eax
cmp eax, edi
jne 0x44550f
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x44]
mov eax, dword [esi + 0x30]
push edi
call fcn.00443d43
add esp, 0xc
test eax, eax
jl 0x44638c
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp + 0x44]
add ecx, eax
mov dword [ebp + 0x48], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [esi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [esi + 0x20]
mov al, bl
sub al, byte [esi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [esi + 0x20], 2
jmp 0x445533
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x445536
mov eax, dword [ebp + 0x74]
push edi
push ebx
push dword [ebp + 0x48]
call fcn.00444227
add esp, 0xc
test eax, eax
jne 0x44641f
mov eax, dword [ebp + 0x48]
mov byte [ebx], 0x57
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x4c
mov ecx, eax
sub ecx, dword [esi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [esi + 0x14]
mov byte [ebx - 1], al
mov byte [ebx], 0x4f
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x38], 0xfffffffe
mov dword [ebp - 4], 9
jne 0x445223
or dword [ebp + 0x38], 0xffffffff
jmp 0x445223
cmp ecx, 0x16
jl 0x4455d1
mov esi, dword [ebp + 0x78]
push 0xffffffffffffffea
pop ecx
sub ecx, eax
mov dword [ebp + 0x44], ecx
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x44559d
or dword [ebp + 0x38], 0xffffffff
mov ecx, dword [ebp + 0x44]
mov byte [ebx], 0x4b
mov dword [ebp + 0x4c], 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 0x4455bd
shl eax, cl
or dword [esi + 0x38], eax
cmp ecx, dword [esi + 0x34]
jle 0x445223
mov dword [esi + 0x34], ecx
jmp 0x445223
cmp ecx, 0x10
je 0x44642d
cmp ecx, 0xd
je 0x44642d
cmp ecx, 0xe
je 0x44642d
cmp ecx, 4
jle 0x4455fb
cmp ecx, 0x11
jge 0x4455fb
mov dword [ebp + 0x4c], ebx
jmp 0x4455ff
and dword [ebp + 0x4c], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x445220
mov al, byte [edi + 1]
cmp al, 0x3a
mov dword [ebp + 0x4c], ebx
je 0x44561b
cmp al, 0x2e
je 0x44561b
cmp al, 0x3d
jne 0x445634
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
mov eax, edi
call fcn.00444259
test eax, eax
pop ecx
jne 0x446438
mov edi, dword [ebp + 0x50]
inc edi
mov dword [ebp + 0x50], edi
movzx esi, byte [edi]
cmp esi, 0x5e
jne 0x445650
inc edi
mov dword [ebp + 0x50], edi
movzx esi, byte [edi]
mov dword [ebp + 0x48], 1
jmp 0x445654
and dword [ebp + 0x48], 0
and dword [ebp + 0x40], 0
or dword [ebp + 0x3c], 0xffffffff
push 8
xor eax, eax
test esi, esi
pop ecx
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
je 0x44647b
cmp dword [ebp + 0x10], 0
mov edi, dword [ebp + 0x78]
je 0x445699
cmp esi, 0x5c
jne 0x445961
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x445961
and dword [ebp + 0x10], 0
mov dword [ebp + 0x50], eax
jmp 0x445b30
cmp esi, 0x5b
jne 0x4457c1
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x4456b8
cmp al, 0x2e
je 0x4456b8
cmp al, 0x3d
jne 0x445961
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x50]
mov ecx, edi
call fcn.00444259
test eax, eax
pop ecx
je 0x445961
mov eax, dword [edi + 8]
and dword [ebp + 0x20], 0
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x446452
inc eax
inc eax
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5e
jne 0x4456fb
inc eax
mov dword [ebp + 0x20], 1
mov dword [ebp + 0x50], eax
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
push ecx
push eax
call fcn.0044428f
test eax, eax
pop ecx
pop ecx
jl 0x44645d
test byte [ebp + 0x2c], 1
je 0x44571e
cmp eax, 2
jg 0x44571e
xor eax, eax
mov edx, dword [ebp + 0x18]
imul eax, eax, 3
shl eax, 2
mov esi, dword [eax + 0x45a120]
push 8
add esi, edx
pop ecx
lea edi, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x45a124]
mov edi, dword [eax + 0x45a128]
xor eax, eax
cmp ecx, eax
jl 0x44576f
xor esi, esi
add ecx, edx
cmp edi, eax
jl 0x445760
mov dl, byte [ecx + esi]
or byte [ebp + esi - 0x70], dl
inc esi
cmp esi, 0x20
jl 0x445751
jmp 0x44576f
mov dl, byte [ecx + esi]
not dl
and byte [ebp + esi - 0x70], dl
inc esi
cmp esi, 0x20
jl 0x445760
cmp edi, eax
jge 0x445775
neg edi
cmp edi, 1
jne 0x445780
and byte [ebp - 0x6f], 0xc3
jmp 0x445789
cmp edi, 2
jne 0x445789
and byte [ebp - 0x65], 0x7f
cmp dword [ebp + 0x20], eax
je 0x4457a0
mov cl, byte [ebp + eax - 0x70]
not cl
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x44578e
jmp 0x4457ae
mov cl, byte [ebp + eax - 0x70]
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x4457a0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x40], 0xa
jmp 0x445b30
cmp esi, 0x5c
jne 0x445961
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.00443994
mov esi, eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x4464b0
mov ecx, esi
neg ecx
cmp ecx, 4
jne 0x445800
push 8
pop esi
jmp 0x445961
cmp ecx, 0x10
jne 0x445809
push 0x58
jmp 0x4457fa
cmp ecx, 0xf
jne 0x445812
push 0x52
jmp 0x4457fa
cmp ecx, 0x14
jne 0x445838
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x44582c
add eax, 2
cmp byte [eax], 0x45
je 0x445691
mov dword [ebp + 0x10], 1
jmp 0x445b30
test esi, esi
jge 0x445961
add dword [ebp + 0x40], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x445917
sub ecx, 5
je 0x445900
dec ecx
je 0x4458eb
dec ecx
je 0x4458c8
dec ecx
je 0x4458a7
dec ecx
je 0x44588d
dec ecx
je 0x445875
sub ecx, 9
jmp 0x445947
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x445877
jmp 0x445b30
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x44588f
jmp 0x445b30
mov edi, eax
lea eax, [ebp - 0x44]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x4458b0
and byte [ebp - 0x43], 0xf7
jmp 0x445b30
mov edi, eax
lea eax, [ebp - 0x44]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
not al
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x4458d1
or byte [ebp - 0x43], 8
jmp 0x445b30
xor esi, esi
mov cl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x4458ed
jmp 0x445b30
xor esi, esi
mov cl, byte [eax + esi + 0x40]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x445902
jmp 0x445b30
cmp esi, 0xfffffffa
je 0x445b30
cmp esi, 0xfffffffb
je 0x445b30
cmp esi, 0xfffffff6
je 0x445b30
cmp esi, 0xfffffff7
je 0x445b30
cmp esi, 0xfffffff8
je 0x445b30
cmp esi, 0xfffffff9
je 0x445b30
test byte [ebp + 0x2c], 0x40
jne 0x446468
mov eax, dword [ebp + 0x50]
sub dword [ebp + 0x40], 2
movzx esi, byte [eax]
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jmp 0x44597d
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x445982
and dword [ebp + 0x10], 0
mov dword [ebp + 0x50], ecx
cmp byte [ecx + 1], 0x5c
mov eax, dword [ebp + 0x50]
je 0x44596a
xor edi, edi
cmp dword [ebp + 0x10], edi
mov edx, eax
mov dword [ebp + 0x20], edx
jne 0x445ae6
cmp byte [eax + 1], 0x2d
jne 0x445ae6
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4459e4
cmp byte [eax + 1], 0x45
jne 0x4459d6
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4459a9
jmp 0x4459d6
cmp byte [eax + 1], 0x51
jne 0x4459e4
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4459dd
cmp byte [eax + 1], 0x45
jne 0x4459dd
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4459bb
jmp 0x4459e4
mov dword [ebp + 0x10], 1
mov al, byte [eax]
test al, al
je 0x445ae3
cmp dword [ebp + 0x10], edi
jne 0x4459fb
cmp al, 0x5d
je 0x445ae3
cmp dword [ebp + 0x10], edi
movzx eax, al
mov dword [ebp + 0x18], eax
jne 0x445a60
cmp eax, 0x5c
jne 0x445a60
mov eax, dword [ebp + 0x78]
mov edi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x2c]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push edi
push eax
call fcn.00443994
add esp, 0x14
cmp dword [edi], 0
mov dword [ebp + 0x18], eax
jne 0x4464b0
test eax, eax
jge 0x445a63
cmp eax, 0xfffffffc
jne 0x445a3f
push 8
jmp 0x445a4f
cmp eax, 0xfffffff0
jne 0x445a48
push 0x58
jmp 0x445a4f
cmp eax, 0xfffffff1
jne 0x445a55
push 0x52
pop eax
mov dword [ebp + 0x18], eax
jmp 0x445a63
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x50], eax
jmp 0x445ae6
mov edi, dword [ebp + 0x68]
cmp eax, esi
jl 0x446473
je 0x445ae6
mov edx, dword [ebp + 0x40]
mov ecx, eax
sub ecx, esi
cmp dword [ebp + 0x7c], 0
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x3c], eax
jne 0x445b30
cmp esi, eax
jg 0x445b30
mov eax, dword [ebp + 0x2c]
and eax, 1
mov dword [ebp + 0x20], eax
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
cmp dword [ebp + 0x20], 0
je 0x445adb
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
movzx ecx, byte [eax + esi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc esi
cmp esi, dword [ebp + 0x18]
jle 0x445a99
jmp 0x445b30
mov dword [ebp + 0x50], edx
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
test byte [ebp + 0x2c], 1
je 0x445b2a
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
movzx esi, byte [eax + esi]
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc dword [ebp + 0x40]
mov dword [ebp + 0x3c], esi
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
test esi, esi
je 0x44647b
cmp esi, 0x5d
jne 0x44566e
cmp dword [ebp + 0x10], 0
jne 0x44566e
cmp dword [ebp + 0x40], 1
jne 0x445bd5
cmp dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
je 0x445b82
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x445b70
or dword [ebp + 0x38], 0xffffffff
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0xc], eax
mov al, byte [ebp + 0x3c]
mov byte [ebx], 0x18
inc ebx
jmp 0x445601
mov al, byte [ebp + 0x3c]
mov esi, dword [ebp + 0x78]
mov cl, byte [ebp + 0x2c]
and cl, 1
or cl, 0x16
mov byte [ebx], cl
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x4c], ebx
inc ebx
mov byte [ebx], al
inc ebx
cmp ecx, 0xfffffffe
jne 0x445bba
or dword [ebp + 0xc], 0xffffffff
mov ecx, dword [ebp + 0x14]
movzx eax, al
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x38], eax
jmp 0x445223
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
movzx eax, byte [ebx - 1]
or eax, dword [esi + 0x40]
mov dword [ebp + 0xc], ecx
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
jmp 0x445223
cmp dword [ebp + 0x38], 0xfffffffe
jne 0x445bdf
or dword [ebp + 0x38], 0xffffffff
cmp dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
je 0x445c12
mov byte [ebx], 0x49
inc ebx
cmp dword [ebp + 0x7c], 0
jne 0x445c20
lea eax, [ebp - 0x44]
push 0x20
mov esi, ebx
sub eax, ebx
pop edi
mov cl, byte [eax + esi]
not cl
mov byte [esi], cl
inc esi
dec edi
jne 0x445c05
jmp 0x445c20
mov byte [ebx], 0x48
inc ebx
push 8
pop ecx
lea esi, [ebp - 0x44]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x445220
and dword [ebp + 0x24], 0
mov dword [ebp + 0x34], ecx
cmp dword [ebp + 0x4c], 0
je 0x446486
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x445c4c
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x38], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x14], ecx
sub eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x3c], 0
and dword [ebp + 0x28], 0
and eax, 0x200
mov edi, edx
inc ecx
mov dword [ebp - 0x50], eax
mov dword [ebp + 0x1c], edi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x445c83
xor eax, eax
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x50], ecx
jmp 0x445c92
cmp al, 0x3f
jne 0x445c8f
mov eax, dword [ebp - 0x48]
mov dword [ebp + 0x50], ecx
jmp 0x445c92
mov eax, dword [ebp - 0x4c]
mov cl, byte [edx]
cmp cl, 0x16
mov dword [ebp + 0x30], eax
je 0x4460d9
cmp cl, 0x17
je 0x4460d9
cmp cl, 0x18
jne 0x445ce4
cmp dword [ebp + 0x28], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x3c], 0xd
mov dword [ebp + 0x44], eax
jne 0x446125
cmp dword [ebp + 0x34], 0
jge 0x446125
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x44]
push 0x18
jmp 0x44610e
cmp cl, 0x11
jae 0x445d1e
cmp dword [ebp + 0x28], 0
movzx eax, cl
mov dword [ebp + 0x3c], 0x1a
mov dword [ebp + 0x44], eax
jne 0x446125
cmp dword [ebp + 0x34], 0
jge 0x446125
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x44]
jmp 0x44610e
cmp cl, 0x48
je 0x44605f
cmp cl, 0x49
je 0x44605f
cmp cl, 0x4b
je 0x44605f
cmp cl, 0x58
je 0x445d51
cmp cl, 0x59
je 0x445d51
cmp cl, 0x57
je 0x445d51
cmp cl, 0x5a
jne 0x446491
and dword [ebp + 0x44], 0
and dword [ebp + 0x48], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5a
mov dword [ebp + 0x40], eax
jne 0x445d6f
cmp byte [edx + 3], 0x60
je 0x44649c
cmp eax, 0x7530
jg 0x4464a7
cmp dword [ebp + 0x34], 0xffffffff
jne 0x445d98
mov ecx, edx
xor eax, eax
mov ah, byte [ecx + 1]
mov al, byte [ecx + 2]
add ecx, eax
cmp byte [ecx], 0x4f
jne 0x445d82
mov eax, ebx
sub eax, ecx
mov dword [ebp + 0x44], eax
cmp dword [ebp + 0x24], 0
jne 0x445e2a
cmp dword [ebp + 0x34], 0
je 0x446065
cmp dword [ebp + 0x34], 1
push dword [ebp + 4]
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x78]
mov byte [ebx], 0
jg 0x445de3
push 1
push esi
call fcn.004442cd
push dword [ebp + 0x40]
lea edi, [esi + 1]
push esi
push edi
call fcn.0044af60
mov al, byte [ebp + 0x30]
add esp, 0x18
inc ebx
add al, 0x61
mov byte [esi], al
mov dword [ebp + 0x4c], edi
jmp 0x445e19
push 4
push esi
call fcn.004442cd
push dword [ebp + 0x40]
lea eax, [esi + 4]
push esi
push eax
call fcn.0044af60
mov al, byte [ebp + 0x30]
add al, 0x61
mov byte [esi], al
add esp, 0x18
add ebx, 4
inc esi
mov byte [esi], 0x58
inc esi
mov dword [ebp + 0x48], esi
mov byte [esi], 0
mov byte [esi + 1], 0
inc esi
inc esi
mov dword [ebp + 0x4c], esi
dec dword [ebp + 0x34]
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x34]
mov esi, dword [ebp + 0x78]
jmp 0x445ec7
cmp dword [ebp + 0x24], 1
jle 0x445eba
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x445e47
mov ecx, dword [ebp + 0x24]
dec ecx
imul ecx, dword [ebp - 4]
add dword [eax], ecx
jmp 0x445eba
cmp dword [ebp - 0x20], 0
je 0x445e59
cmp dword [ebp + 0x14], 0
jge 0x445e59
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x24], 1
jle 0x445eba
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 4]
dec eax
mov dword [ebp + 0x20], eax
push dword [ebp + 0x40]
mov eax, dword [esi + 0x20]
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], eax
push ebx
call fcn.0044a6b0
add esp, 0xc
jmp 0x445ea4
mov ecx, dword [esi + 0x20]
xor eax, eax
mov ah, byte [edi]
mov al, byte [edi + 1]
add eax, dword [ebp + 0x40]
sar eax, 8
mov byte [ecx], al
mov al, byte [edi + 1]
add al, byte [ebp + 0x40]
mov ecx, dword [esi + 0x20]
mov byte [ecx + 1], al
add dword [esi + 0x20], 2
inc edi
inc edi
cmp edi, dword [ebp + 0x3c]
jb 0x445e80
mov edi, dword [ebp + 0x3c]
add ebx, dword [ebp + 0x40]
dec dword [ebp + 0x20]
mov dword [ebp + 4], edi
jne 0x445e69
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x34]
test eax, eax
jle 0x445ec9
sub eax, dword [ebp + 0x24]
mov dword [ebp + 0x34], eax
test eax, eax
jl 0x445ff4
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x445eed
test eax, eax
jle 0x445eed
mov edx, dword [ebp - 4]
add edx, 7
imul edx, eax
sub edx, 6
add dword [ecx], edx
jmp 0x445fa6
dec eax
mov dword [ebp + 0x44], eax
js 0x445fa6
mov al, byte [ebp + 0x30]
add al, 0x61
mov byte [ebp + 3], al
mov edi, dword [esi + 0x20]
mov al, byte [ebp + 3]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x44], 0
mov dword [ebp + 0x20], edi
je 0x445f31
mov eax, dword [ebp + 0x48]
mov byte [ebx], 0x58
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 + 0x48], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x40]
push dword [ebp + 0x4c]
push ebx
call fcn.0044a6b0
mov eax, dword [ebp + 4]
add esp, 0xc
cmp eax, edi
jae 0x445f94
mov edi, dword [ebp + 0x44]
neg edi
sbb edi, edi
and edi, 3
inc edi
cmp dword [ebp + 0x44], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp + 2], cl
mov edx, dword [esi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, dword [ebp + 0x40]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp + 0x40]
mov edx, dword [esi + 0x20]
add cl, byte [ebp + 2]
mov byte [edx + 1], cl
add dword [esi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x20]
jb 0x445f63
mov edi, dword [ebp + 0x20]
add ebx, dword [ebp + 0x40]
dec dword [ebp + 0x44]
mov dword [ebp + 4], edi
jns 0x445eff
mov edi, dword [ebp + 0x1c]
cmp dword [ebp + 0x48], 0
je 0x44625c
mov edi, dword [ebp + 0x48]
xor edx, edx
mov ecx, ebx
sub ecx, dword [ebp + 0x48]
mov eax, ebx
inc ecx
sub eax, ecx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov byte [ebx], 0x4f
mov byte [ebx + 2], cl
sub edi, edx
mov dword [ebp + 0x20], edx
neg edx
sbb edx, edx
and edx, edi
mov dword [ebp + 0x48], edx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
inc ebx
inc ebx
cmp dword [ebp + 0x48], 0
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jne 0x445fb0
jmp 0x446259
mov edi, ebx
sub edi, dword [ebp + 0x44]
xor ecx, ecx
mov ch, byte [edi + 1]
mov eax, edi
mov cl, byte [edi + 2]
sub eax, ecx
mov dword [ebp + 0x48], eax
mov al, byte [ebp + 0x30]
add al, 0x50
cmp dword [ebp + 0x7c], 0
mov byte [edi], al
jne 0x446259
mov eax, dword [ebp + 0x48]
cmp byte [eax], 0x57
je 0x446259
mov dword [ebp + 0x3c], eax
push 0
push edi
push dword [ebp + 0x3c]
call fcn.004440e2
add esp, 0xc
test eax, eax
jne 0x446054
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4e
mov dword [ebp + 0x3c], eax
je 0x446028
jmp 0x446259
mov eax, dword [ebp + 0x48]
add byte [eax], 3
jmp 0x446259
cmp dword [ebp + 0x34], 0
jne 0x44606c
mov ebx, edx
jmp 0x44634c
mov ecx, dword [ebp + 0x34]
xor edi, edi
inc edi
cmp ecx, edi
je 0x446079
mov dword [esi + 0x44], edi
cmp dword [ebp + 0x24], 0
jne 0x44608b
cmp ecx, 0xffffffff
jne 0x44609d
add al, 0x40
jmp 0x446256
cmp dword [ebp + 0x24], 1
jne 0x4460a8
cmp ecx, 0xffffffff
jne 0x4460a8
add al, 0x42
jmp 0x446256
cmp ecx, edi
jne 0x4460a8
add al, 0x44
jmp 0x446256
add al, 0x46
mov byte [ebx], al
mov eax, dword [ebp + 0x24]
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 0x4460c8
and dword [ebp + 0x34], 0
mov ecx, dword [ebp + 0x34]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x446259
cmp dword [ebp + 0x24], 1
movzx edi, byte [ebx - 1]
mov dword [ebp + 0x44], edi
jle 0x4460f1
mov eax, dword [esi + 0x40]
or eax, edi
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x28], 0
jne 0x446125
cmp dword [ebp + 0x34], 0
jge 0x446125
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x44]
movzx eax, cl
push eax
call fcn.0044438b
add esp, 0x14
test eax, eax
je 0x446125
and dword [ebp + 0x30], 0
mov dword [ebp + 0x28], 1
mov eax, dword [ebp + 0x4c]
mov cl, byte [eax]
cmp cl, 0xe
je 0x44613e
cmp cl, 0xd
je 0x44613e
or dword [ebp + 0x40], 0xffffffff
or dword [ebp + 0x48], 0xffffffff
jmp 0x44614c
movzx ecx, byte [eax + 1]
mov dword [ebp + 0x48], ecx
movzx ecx, byte [eax + 2]
mov dword [ebp + 0x40], ecx
cmp dword [ebp + 0x34], 0
mov edi, ebx
mov ebx, eax
je 0x44634c
mov edx, dword [ebp + 0x34]
xor eax, eax
inc eax
cmp edx, eax
je 0x446167
mov dword [esi + 0x44], eax
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x3c]
add eax, ecx
cmp dword [ebp + 0x24], 0
mov dword [ebp + 0x30], eax
jne 0x44619c
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x4c]
je 0x44620b
cmp edx, 1
je 0x44623b
add al, 0x1f
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x44624c
cmp dword [ebp + 0x24], 1
jne 0x4461d8
cmp edx, 0xffffffff
jne 0x4461b1
mov ebx, dword [ebp + 0x4c]
add al, 0x1b
jmp 0x44623d
cmp edx, 1
mov ebx, edi
je 0x44634c
mov al, byte [ebp + 0x30]
add al, 0x1f
mov byte [edi], al
mov eax, dword [ebp + 0x34]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [edi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x446251
mov ebx, dword [ebp + 0x4c]
add cl, 0x21
mov byte [ebx], cl
mov ecx, dword [ebp + 0x24]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x24]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x44620f
mov cl, byte [ebp + 0x44]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x48]
inc ebx
test ecx, ecx
jl 0x44620b
mov byte [ebx], cl
mov cl, byte [ebp + 0x40]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x19
jmp 0x44623d
mov ecx, dword [ebp + 0x24]
cmp dword [ebp + 0x34], ecx
je 0x446253
mov cl, byte [ebp + 0x44]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x48]
inc ebx
test ecx, ecx
jl 0x44622d
mov byte [ebx], cl
mov cl, byte [ebp + 0x40]
inc ebx
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x34]
sub ecx, dword [ebp + 0x24]
cmp ecx, 1
mov dword [ebp + 0x34], ecx
jne 0x446242
add al, 0x1d
mov byte [ebx], al
inc ebx
jmp 0x446253
add al, 0x1f
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
mov al, byte [ebp + 0x44]
mov byte [ebx], al
inc ebx
mov edi, dword [ebp + 0x1c]
cmp dword [ebp + 0x28], 0
je 0x44634c
mov al, byte [edi]
cmp al, 0x21
je 0x446274
cmp al, 0x3b
je 0x446274
cmp al, 0x2e
jne 0x446283
movzx eax, al
movzx eax, byte [eax + 0x45a2e8]
add edi, eax
mov dword [ebp + 0x1c], edi
mov eax, ebx
sub eax, edi
test eax, eax
mov dword [ebp + 0x20], eax
jle 0x44634c
movzx eax, byte [edi]
cmp eax, 0x2a
jg 0x4462e2
je 0x4462dd
sub eax, 0x19
je 0x4462d8
push 2
pop ecx
sub eax, ecx
je 0x4462d3
sub eax, ecx
je 0x4462ce
sub eax, ecx
je 0x4462c9
sub eax, 7
je 0x4462c1
sub eax, ecx
jne 0x4462f8
mov byte [edi], 0x30
jmp 0x44634c
mov byte [edi], 0x2f
jmp 0x44634c
mov byte [edi], 0x25
jmp 0x44634c
mov byte [edi], 0x24
jmp 0x44634c
mov byte [edi], 0x23
jmp 0x44634c
mov byte [edi], 0x22
jmp 0x44634c
mov byte [edi], 0x31
jmp 0x44634c
sub eax, 0x2c
je 0x446349
sub eax, 7
je 0x446344
dec eax
dec eax
je 0x44633f
dec eax
dec eax
je 0x44633a
dec eax
dec eax
je 0x446335
push dword [ebp + 0x20]
push edi
add edi, 3
push edi
call fcn.0044af60
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov byte [eax], 0x57
add ecx, 3
add ebx, 3
mov byte [ebx], 0x4f
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x1c]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x1c]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x44634c
mov byte [edi], 0x3f
jmp 0x44634c
mov byte [edi], 0x3e
jmp 0x44634c
mov byte [edi], 0x3d
jmp 0x44634c
mov byte [edi], 0x3c
jmp 0x44634c
mov byte [edi], 0x32
mov eax, dword [ebp - 0x50]
and dword [ebp + 0x4c], 0
or dword [esi + 0x40], eax
jmp 0x445223
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
dec ecx
mov dword [ebp + 0x50], ecx
mov dword [eax], 0x1a
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
inc edi
mov dword [ebp + 0x50], edi
mov dword [eax], 0x18
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x4464b0
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 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x4464b0
mov dword [edi], 8
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x4464b0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x32
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