Function at 0x440240
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x1478
call fcn.007ce210
mov ebx, dword [esp + 0x148c]
mov byte [esp + 0x23], 0x55
call fcn.007c4bf0
test bl, 0x10
jne 0x4402d5
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], eax
mov byte [esp + 0x3c], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x22], al
mov byte [esp + 0x4f], al
mov byte [esp + 0x47], al
mov byte [esp + 0x3b], al
mov byte [esp + 0x3d], al
mov byte [esp + 0x21], al
mov byte [esp + 0x3a], al
mov byte [esp + 0x3e], al
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], eax
jmp 0x440fa1
mov cl, 0x64
movzx ecx, cl
cmp ecx, 0xa
je 0x440316
mov dword [esp + 0x1c], eax
cmp ecx, 0x64
jne 0x44039a
mov eax, dword [esp + 0x148c]
mov ecx, eax
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
and eax, ecx
mov ecx, eax
imul ecx, ecx
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jmp 0x440323
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x148c]
test al, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x3b], al
mov byte [esp + 0x3d], al
mov byte [esp + 0x3e], al
mov byte [esp + 0x21], al
mov byte [esp + 0x47], al
mov byte [esp + 0x3c], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x22], al
mov byte [esp + 0x3a], al
mov byte [esp + 0x4f], al
mov dword [esp + 0x30], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x74], eax
je 0x44045c
jmp 0x44042b
mov eax, 0x12
mov ecx, dword [esp + 0x148c]
mov edx, ecx
not ecx
and ecx, 1
add ecx, edx
setne cl
movzx ecx, cl
test edx, ecx
mov dword [esp + 0x18], ecx
mov byte [esp + 0x3b], cl
mov byte [esp + 0x3d], cl
mov byte [esp + 0x21], cl
mov byte [esp + 0x47], cl
mov byte [esp + 0x3c], cl
mov byte [esp + 0x3f], cl
mov byte [esp + 0x22], cl
mov byte [esp + 0x3a], cl
mov byte [esp + 0x4f], cl
mov byte [esp + 0x3e], cl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x74], ecx
jne 0x440962
jmp 0x44045c
mov esi, 0xc
mov eax, dword [esp + 0x1494]
mov dword [esp + 4], eax
mov dword [esp], 3
call fcn.0061b0f0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ebp
cmp esi, 9
je 0x440f32
mov eax, 0xe
mov byte [esp + 0x3e], 0x49
mov ecx, dword [esp + 0x148c]
test cl, 2
jne 0x44047f
mov dword [esp + 0x54], edi
mov ebx, dword [esp + 0x5c]
jmp 0x440e98
mov dword [esp + 0x54], edi
mov cl, 0x2d
mov eax, 0x15
movzx ecx, cl
cmp ecx, 0x2d
jne 0x44049b
mov ebx, dword [esp + 0x5c]
jmp 0x441057
xor ebx, ebx
mov esi, 2
add esi, 7
mov ebp, dword [esp + 0x1494]
jmp 0x4404ce
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov dword [esp + 4], ebp
mov dword [esp], 2
call fcn.0061b0f0
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp ebx, eax
jb 0x4404b0
mov edi, dword [esp + 0x54]
jmp 0x440453
mov dl, 0x3e
mov al, 0x44
mov edi, dword [0x80c0bc]
test edi, edi
jne 0x44050a
mov ecx, edi
not ecx
and ecx, 1
add ecx, edi
jne 0x440f08
mov esi, 5
movzx eax, al
cmp eax, 0x19
je 0x44052f
mov byte [esp + 0x23], dl
cmp eax, 0x76
mov dword [esp], edi
call fcn.007c5950
test eax, eax
je 0x440570
jmp 0x4405e5
mov dword [esp + 0x18], edi
mov byte [esp + 0x23], dl
cmp esi, 5
mov edi, dword [esp + 0x18]
jne 0x440be0
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x440be0
mov dword [esp], edi
call fcn.007c5950
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4405e5
mov eax, dword [esp + 0x148c]
mov edx, eax
movzx eax, dl
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movsx ecx, dl
movzx eax, al
cmp ecx, eax
jge 0x4405fe
mov dword [esp + 0x18], edi
mov eax, edx
and eax, 1
mov ecx, eax
imul ecx, ecx
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x440be0
mov al, 0x6c
mov esi, 8
movzx ecx, al
cmp ecx, 0x17
je 0x441165
mov eax, 9
cmp ecx, 0x2e
je 0x440aad
mov eax, 0x1b
cmp ecx, 0x6c
jne 0x440607
mov cl, byte [esp + 0x47]
jmp 0x441139
mov dword [esp + 4], str.Failed_to_lock_log_n
mov dword [esp], 2
call fcn.0061b0f0
jmp 0x440f08
mov dword [esp + 0x18], edi
jmp 0x440e43
call fcn.00455fb0
test eax, eax
jne 0x440631
jmp 0x440be0
mov esi, 0xb
call fcn.00455fb0
test eax, eax
je 0x440b23
xor eax, eax
test al, al
jne 0x440b23
mov esi, 2
mov byte [esp + 0x47], 0x15
mov byte [esp + 0x3f], 0x14
mov byte [esp + 0x21], 0x5d
lea eax, [esp + 0x78]
mov dword [esp + 0x28], eax
mov dword [esp], eax
mov dword [esp + 0x10], 0x80bcbc
mov dword [esp + 0xc], 0x80b8bc
mov dword [esp + 8], str._s_s.log
mov dword [esp + 4], 0x400
call fcn.0064a2d0
mov eax, dword [0x7f6144]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov ebp, dword [esp + 0x58]
jne 0x440c2c
mov ecx, 5
mov al, byte [esp + 0x3f]
movzx eax, al
cmp eax, 0x14
jne 0x4406b3
mov dword [esp + 0x5c], ebx
mov edi, dword [esp + 0x54]
jmp 0x440712
mov byte [esp + 0x3f], 0x14
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
mov dword [esp], 0x80c0c0
call fcn.004959f0
mov dword [esp + 8], 0x1a4
mov dword [esp + 4], 0x109
mov dword [esp], 0x80c0c0
call fcn.007c3b30
mov dword [0x7f6144], eax
cmp eax, 0xffffffff
je 0x4410b7
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x440894
jmp 0x4410b7
mov dword [esp + 0x54], edi
cmp ecx, 2
jne 0x440765
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x440765
mov esi, 4
movzx eax, byte [esp + 0x3a]
cmp eax, 0x2d
jne 0x4407ca
mov dword [esp + 0x58], ebp
mov ebx, dword [esp + 0x5c]
cmp esi, 4
jne 0x44083c
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x44083c
mov byte [esp + 0x3a], 0x5a
test byte [esp + 0x3c], 1
jmp 0x4407d8
mov byte [esp + 0x3f], 0x60
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x400
mov dword [esp], 0x80c0c0
call fcn.004959f0
mov dword [esp + 8], 0x1a4
mov dword [esp + 4], 0x109
mov dword [esp], 0x80c0c0
call fcn.007c3b30
mov dword [0x7f6144], eax
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov ebx, dword [esp + 0x5c]
jne 0x440894
jmp 0x4410b7
mov byte [esp + 0x3a], 0x2d
test byte [esp + 0x3c], 1
mov dword [esp + 0x58], ebp
mov ebx, dword [esp + 0x48]
je 0x440aca
mov eax, 0xc
mov esi, dword [esp + 0x48]
mov ecx, esi
not ecx
and ecx, 1
add ecx, esi
setne cl
movzx ebx, cl
add ebx, esi
mov edx, dword [esp + 0x40]
mov byte [esp + esi + 0x478], dl
jmp 0x440a78
mov byte [esp + 0x21], 0x4e
mov al, 0x64
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x80c0c0
call fcn.007c58b0
test eax, eax
mov eax, dword [0x7f6144]
mov dword [esp + 0x50], eax
jne 0x441027
mov esi, 0x18
mov eax, 0x10
mov ecx, dword [esp + 0x50]
cmp ecx, 0xffffffff
je 0x440f86
cmp eax, 2
jne 0x44088c
mov byte [esp + 0x21], 0x46
mov al, 0x64
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x80c0c0
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jmp 0x44082d
mov dword [esp + 0x50], ecx
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x58], ebp
mov esi, 0x14
mov al, 0x24
mov dword [esp + 0x74], eax
mov byte [esp + 0x4f], 9
mov byte [esp + 0x3a], 0x5a
mov byte [esp + 0x22], 0x58
mov eax, dword [esp + 0x1490]
mov dword [esp], eax
call fcn.007c3e70
mov dword [esp + 0x24], eax
mov ecx, dword [0x7f6144]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x478]
mov dword [esp + 0x70], ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x6c], 0
cmp eax, ecx
mov ebp, 0
je 0x4410d5
mov dword [esp + 0x5c], ebx
mov eax, 5
mov ecx, dword [esp + 0x1490]
movzx esi, byte [ecx + ebp]
mov ebx, dword [esp + 0x6c]
cmp ebx, 0x1000
setb cl
mov edx, ebx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
or dl, cl
mov byte [esp + 0x3c], dl
mov edx, esi
cmp edx, 0xa
mov edi, dword [esp + 0x54]
je 0x44095e
mov ecx, 2
mov dword [esp + 0x40], edx
imul edx, edx
and edx, 3
cmp edx, 2
mov dword [esp + 0x48], ebx
jne 0x440712
jmp 0x440962
mov dword [esp + 0x40], edx
cmp eax, 5
jne 0x44042b
mov eax, 0xc
test byte [esp + 0x3c], 1
je 0x4409ce
movzx eax, byte [esp + 0x22]
cmp eax, 0x58
jne 0x4409e5
mov byte [esp + 0x22], 0x36
mov eax, 3
mov ecx, dword [esp + 0x6c]
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
add eax, ecx
mov dword [esp + 0x54], eax
mov byte [esp + ecx + 0x478], 0xd
cmp eax, 0x1000
mov ebx, 0x1000
jb 0x440a3a
mov al, 1
test al, al
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], ebp
jne 0x440aca
jmp 0x440dbb
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], ebp
mov ebx, ecx
jmp 0x44119c
mov esi, 0xd
mov byte [esp + 0x22], 0x58
mov edx, dword [esp + 0x6c]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, edx
adc ecx, 0
mov byte [esp + edx + 0x478], 0xd
cmp ecx, 0x1000
mov ebx, 0x1000
jb 0x440a43
mov eax, ecx
mov dword [esp + 0x54], ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], ebp
jne 0x440aca
jmp 0x440db2
mov dword [esp + 0x48], ecx
jmp 0x440dbb
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], edx
jmp 0x440db2
inc ecx
mov byte [esp + edi + 0x478], 0xa
mov ebx, edx
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jb 0x440a50
mov dword [esp + 0x58], ebp
jmp 0x440b08
cmp eax, 0xc
jne 0x440a8f
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x440a8f
mov dword [esp + 0x40], edx
jmp 0x440aca
mov dword [esp + 0x40], edx
mov eax, 0xe
mov byte [esp + 0x3e], 0x49
mov ecx, dword [esp + 0x148c]
test cl, 4
jne 0x440d4e
cmp eax, 9
jne 0x440fa1
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x440615
jmp 0x440fa1
mov esi, 1
mov al, byte [esp + 0x4f]
movzx eax, al
cmp eax, 6
jne 0x440b23
mov eax, 0xa
mov byte [esp + 0x4f], 6
mov edx, dword [esp + 0x58]
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
movzx ebp, cl
add ebp, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x6c], ebx
jne 0x440900
cmp eax, 4
jne 0x441104
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x440aca
jmp 0x441104
cmp esi, 1
jne 0x440be0
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
je 0x440be0
mov byte [esp + 0x4f], 9
mov eax, 3
mov ecx, dword [esp + 0x58]
sub eax, ecx
xor eax, ecx
setne al
movzx ebp, al
add ebp, ecx
cmp ebp, dword [esp + 0x24]
jne 0x440b7b
mov eax, 6
mov ecx, ebp
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x6c], ebx
jb 0x4410ea
jmp 0x440900
mov dword [esp + 0x6c], ebx
jmp 0x440900
mov ecx, 0x6c
xor cl, 0x51
mov dword [esp + 0x74], ecx
cmp eax, 2
adc esi, 0
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c3eb0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x440b90
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
jmp 0x4410b7
mov byte [esp + 0x47], 0x5c
mov dword [esp + 0x58], ebp
mov dl, 0x25
mov eax, dword [esp + 0x148c]
test al, 6
je 0x440c5f
mov byte [esp + 0x3b], 0x25
call fcn.004561c0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x440c10
mov dl, 0x25
jmp 0x440c5f
mov esi, 0x10
mov eax, dword [esp + 0x1490]
mov dword [esp + 4], eax
mov dword [esp], 0x27
call fcn.00441910
cmp esi, 2
jne 0x440c5b
movzx ecx, byte [esp + 0x21]
cmp ecx, 0xc
je 0x44080c
cmp ecx, 0x4e
je 0x440c8f
mov eax, 2
cmp ecx, 0x5d
jne 0x440cda
mov ecx, dword [esp + 0x50]
jmp 0x440853
mov dl, byte [esp + 0x3b]
mov ecx, 7
movzx eax, dl
cmp eax, 0x25
jne 0x440c86
mov byte [esp + 0x3b], 0x70
mov eax, dword [esp + 0x148c]
test ah, 1
je 0x440e43
jmp 0x440d57
mov byte [esp + 0x3b], dl
jmp 0x440d22
mov esi, 0x12
mov byte [esp + 0x21], 0x5d
mov al, 0x64
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x80c0c0
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [0x7f6144]
mov dword [esp + 0x50], eax
jne 0x441027
jmp 0x440741
mov ebp, 0x10
mov byte [esp + 0x21], 0xc
mov al, 0x64
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x80c0c0
call fcn.007c58b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [0x7f6144]
mov dword [esp + 0x50], eax
je 0x44083c
jmp 0x44126b
cmp ecx, 7
jne 0x440d8d
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x440d8d
mov eax, 0x19
mov byte [esp + 0x3b], 0x25
mov ecx, dword [esp + 0x148c]
test ch, 1
je 0x440e43
cmp eax, 0xe
je 0x440f66
mov esi, 0x16
mov byte [esp + 0x3d], 0x40
mov al, 6
mov dword [esp + 0x64], eax
mov ecx, dword [0x7f6144]
mov dword [esp + 0x2c], ecx
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
add eax, ecx
je 0x441257
jmp 0x440e5d
mov esi, 0x1d
mov al, 0x64
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.007c5050
mov dword [0x7f6144], 0xffffffff
mov ebp, dword [esp + 0x58]
cmp esi, 0xd
jne 0x440698
xor ecx, ecx
mov eax, 0x2b
xor eax, 0x2f
mov edx, dword [esp + 0x48]
lea edx, [edx + 2]
mov edi, dword [esp + 0x54]
jmp 0x440a5b
mov eax, 0xe4
add al, 0x94
mov dword [esp + 0x68], eax
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.007c7490
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x440de0
jmp 0x440e43
mov byte [esp + 0x3d], 0x40
mov al, 0x78
mov dword [esp + 0x68], eax
mov ecx, dword [0x7f6140]
mov dword [esp + 0x30], ecx
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
add eax, ecx
jne 0x4412e3
mov esi, 8
mov eax, dword [0x80c0bc]
mov dword [esp], eax
call fcn.007c5960
test eax, eax
jne 0x440eef
cmp esi, 8
jne 0x440e7e
mov eax, 3
sub eax, esi
xor eax, esi
je 0x440e7e
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.007c4c00
jmp 0x440f08
mov ecx, 0xe
mov eax, 0x1e
mov edx, dword [esp + 0x64]
movzx edx, dl
cmp edx, 0xb
je 0x4412d0
xor esi, esi
cmp eax, 0xe
mov edi, dword [esp + 0x2c]
jne 0x440ed4
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x440ed4
mov dword [esp + 0x5c], ebx
jmp 0x440f2e
mov eax, 0xd6
add al, 0x30
mov dword [esp + 0x64], eax
inc esi
mov dword [esp], edi
call fcn.007c7490
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x440ec0
jmp 0x441257
mov dword [esp + 4], str.Failed_to_unlock_log_n
mov dword [esp], 1
call fcn.0061b0f0
call fcn.0044c0d0
add esp, 0x1478
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x1494]
mov dword [esp + 4], eax
mov dword [esp], 2
call fcn.0061b0f0
mov edi, dword [esp + 0x54]
mov dword [esp + 0x54], edi
mov eax, 0x1a
movzx ecx, byte [esp + 0x3e]
cmp ecx, 0x13
jne 0x440f52
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
jmp 0x440a78
mov byte [esp + 0x3e], 0x13
mov eax, dword [esp + 0x148c]
test al, 4
mov ebx, dword [esp + 0x5c]
je 0x440fa1
mov esi, 0xa
mov eax, dword [esp + 0x1494]
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.0061b0f0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], ecx
cmp esi, 0xa
je 0x440fa1
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov ebp, dword [esp + 0x58]
jne 0x440698
movzx eax, byte [esp + 0x23]
cmp eax, 0x3e
jne 0x4404ed
mov dl, 0x55
mov al, 0x44
mov edi, dword [0x80c0bc]
test edi, edi
jne 0x44050a
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
jne 0x440f08
jmp 0x44050a
mov eax, 0xeb
add al, 0x74
mov dword [esp + 0x60], eax
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.007c5050
mov dword [0x7f6144], 0xffffffff
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x440fe0
mov ebp, dword [esp + 0x58]
jmp 0x440698
mov dword [esp + 0x5c], ebx
mov ebx, 6
mov eax, dword [esp + 0x60]
movzx edx, al
cmp edx, 0x17
je 0x441355
mov ecx, 9
mov eax, 0xc
cmp edx, 0x5f
mov ebx, dword [esp + 0x5c]
je 0x440d22
cmp eax, 0xc
jne 0x440f13
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x440f13
mov al, 0x17
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.007c5050
mov dword [0x7f6144], 0xffffffff
mov ebp, dword [esp + 0x58]
jmp 0x440698
mov al, 0x24
mov dword [esp + 0x74], eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.007c3eb0
mov ebp, dword [esp + 0x58]
mov al, byte [esp + 0x47]
movzx eax, al
cmp eax, 0x15
je 0x440bd7
mov esi, 0xb
cmp eax, 0x5c
jne 0x44112e
mov dword [esp + 0x58], ebp
cmp esi, 0xb
je 0x4410e0
xor eax, eax
test al, al
je 0x441104
mov eax, 0x10
mov byte [esp + 0x47], 0x34
cmp eax, 6
jne 0x440be0
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x440be0
mov eax, dword [esp + 0x74]
movzx ecx, al
cmp ecx, 0x24
je 0x441185
mov eax, 7
cmp ecx, 0x35
je 0x441198
cmp ecx, 0x3d
mov ecx, dword [esp + 0x6c]
jne 0x441095
mov al, 0x37
jmp 0x441097
mov eax, 0xd
mov cl, 0x15
mov dword [esp + 0x58], ebp
mov byte [esp + 0x47], cl
cmp eax, 0xd
jne 0x441153
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x440be0
mov esi, 0x10
call fcn.00455fb0
test eax, eax
je 0x440be0
cmp esi, 8
jne 0x440631
mov esi, 9
call fcn.00455fb0
test eax, eax
jne 0x440631
jmp 0x440537
mov dword [esp + 0x5c], ebx
xor esi, esi
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x6c]
jmp 0x440bb6
mov ecx, dword [esp + 0x6c]
cmp eax, 7
jne 0x44120a
mov dword [esp + 0x6c], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x440aca
mov dword [esp + 0x5c], ebx
xor esi, esi
mov ebx, 0xa6
add ebx, 0xffffff64
mov ebp, dword [esp + 0x34]
jmp 0x4411f1
mov al, bl
add al, 0x2b
mov dword [esp + 0x74], eax
inc esi
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.007c3eb0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x4411d0
mov edx, dword [esp + 0x68]
jmp 0x441213
mov dword [esp + 0x6c], ecx
jmp 0x440aca
cmp ebx, 0xa
jne 0x44122e
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x44122e
mov dword [esp + 0x68], edx
jmp 0x440bca
mov al, 0x5c
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.007c7490
mov ebx, dword [esp + 0x5c]
jmp 0x440e43
mov al, 0xb
mov dword [esp + 0x64], eax
mov dword [esp], ecx
call fcn.007c7490
mov ebp, 4
mov eax, 8
movzx ecx, byte [esp + 0x3d]
cmp ecx, 0x26
jne 0x4412b3
cmp ebp, 4
je 0x44127e
mov eax, ebp
and eax, 1
inc eax
xor eax, ebp
jne 0x441027
mov ecx, 5
mov eax, 0x17
mov byte [esp + 0x3d], 0x26
mov dl, 0x78
mov dword [esp + 0x68], edx
mov edi, dword [0x7f6140]
mov dword [esp + 0x30], edi
mov edx, edi
or edx, 2
mov esi, edi
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add edx, edi
jne 0x4412d0
cmp eax, 8
jne 0x440e43
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x440e17
jmp 0x440e43
cmp ecx, 5
mov ecx, dword [esp + 0x2c]
je 0x4412e3
xor eax, eax
test al, al
je 0x441249
mov dword [esp + 0x5c], ebx
mov ebx, 0x18
mov edx, dword [esp + 0x68]
movzx eax, dl
cmp eax, 0x5c
je 0x441213
xor esi, esi
cmp eax, 0x78
jne 0x441310
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x5c]
jmp 0x440e01
mov ebx, 0xa1
add ebx, 0xffffff62
mov ebp, dword [esp + 0x30]
jmp 0x44133b
inc esi
mov dword [esp], ebp
call fcn.007c7490
mov dl, bl
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x441330
mov dword [esp + 0x68], edx
cmp ebx, 3
jne 0x441363
mov ebx, dword [esp + 0x5c]
jmp 0x440e43
xor esi, esi
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x5c]
jmp 0x44100b