Function at 0x412b10
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x828
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401c00
mov esi, eax
cmp esi, 0
jne 0x412b38
xor eax, eax
jmp 0x414add
xor ebx, ebx
jmp 0x412b3c
mov dword [esp], esi
call fcn.00402040
cmp ebx, eax
setb al
test al, 1
jne 0x412b56
jmp 0x412b4f
mov al, 1
jmp 0x414add
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00402050
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x138]
mov byte [esp + 0x150], al
mov byte [esp + 0x280], 7
mov byte [esp + 0x281], 0x8b
mov eax, 2
mov byte [esp + eax + 0x280], 0
add eax, 1
cmp eax, 5
jne 0x412b89
mov dword [esp + 0x2c], ebx
xor edi, edi
cmp edi, 5
jae 0x412bcd
mov dl, byte [esp + edi + 0x280]
movzx ebx, dl
mov eax, edi
add eax, 0x493594e3
mov ecx, eax
and ecx, ebx
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x91
mov byte [esp + edi + 0x280], al
add edi, 1
jmp 0x412b9f
lea eax, [esp + 0x280]
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401f20
cmp eax, 0
mov ebx, dword [esp + 0x2c]
je 0x412cfe
mov al, byte [esp + 0x134]
mov byte [esp + 0x154], al
mov byte [esp + 0x58], 0x26
mov byte [esp + 0x59], 0x35
mov byte [esp + 0x5a], 0x82
mov eax, 3
mov byte [esp + eax + 0x58], 0
add eax, 1
cmp eax, 4
jne 0x412c1b
xor eax, eax
cmp eax, 4
jae 0x412c4f
mov cl, byte [esp + eax + 0x58]
mov dl, al
add dl, 0xa0
xor dl, cl
add dl, 0xe0
mov byte [esp + eax + 0x58], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412c2a
lea eax, [esp + 0x58]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f20
cmp eax, 0
setne al
test al, 1
jne 0x412c76
jmp 0x412cfe
mov al, byte [esp + 0x130]
mov byte [esp + 0x158], al
mov byte [esp + 0x278], 0x85
mov byte [esp + 0x279], 0x19
mov eax, 2
mov byte [esp + eax + 0x278], 0
add eax, 1
cmp eax, 8
jne 0x412c99
xor eax, eax
cmp eax, 8
jae 0x412ccd
mov cl, byte [esp + eax + 0x278]
mov dl, al
add dl, 0x46
xor dl, cl
add dl, 0xa2
mov byte [esp + eax + 0x278], dl
add eax, 1
jmp 0x412cab
jmp 0x412ccf
lea eax, [esp + 0x278]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f20
cmp eax, 0
setne al
xor al, 0xff
and al, 1
or al, 0
xor al, 0
test al, 1
jne 0x412cfe
jmp 0x412d03
jmp 0x414ad5
mov al, byte [esp + 0x12c]
mov byte [esp + 0x15c], al
mov byte [esp + 0x270], 0xb
mov byte [esp + 0x271], 0x9f
mov eax, 2
mov byte [esp + eax + 0x270], 0
add eax, 1
cmp eax, 7
jne 0x412d26
xor eax, eax
cmp eax, 7
jae 0x412d5a
mov cl, byte [esp + eax + 0x270]
mov dl, al
add dl, 0xa5
xor dl, cl
add dl, 0xc7
mov byte [esp + eax + 0x270], dl
add eax, 1
jmp 0x412d38
lea eax, [esp + 0x270]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x2bc], eax
mov al, byte [esp + 0x128]
mov byte [esp + 0x160], al
mov byte [esp + 0x54], 0xa2
mov byte [esp + 0x55], 0x95
mov byte [esp + 0x56], 0xf6
mov eax, 3
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 4
jne 0x412d96
xor eax, eax
cmp eax, 4
jae 0x412dd3
mov dl, byte [esp + eax + 0x54]
movzx edi, dl
mov ecx, eax
add ecx, 0xeaf2b9fe
mov ebx, ecx
and ebx, edi
mov edi, dword [esp + 0x4c]
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 0xa
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x412da5
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004019c0
fnstcw word [esp + 0x76]
movzx eax, word [esp + 0x76]
or eax, 0xc00
mov word [esp + 0x1ba], ax
fldcw word [esp + 0x1ba]
fistp dword [esp + 0x2cc]
fldcw word [esp + 0x76]
mov ecx, dword [esp + 0x2cc]
mov al, byte [esp + 0x124]
mov byte [esp + 0x164], al
mov byte [esp + 0x268], 0x4f
mov byte [esp + 0x269], 0xeb
mov eax, 2
mov byte [esp + eax + 0x268], 0
add eax, 1
cmp eax, 5
jne 0x412e35
mov dword [esp + 0xc0], ecx
xor eax, eax
cmp eax, 5
jae 0x412e85
movzx edi, byte [esp + eax + 0x268]
mov ecx, 0xa8
sub ecx, eax
or ecx, edi
mov edx, 0xa8
sub edx, eax
and edx, edi
mov edi, dword [esp + 0x4c]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x4d
mov byte [esp + eax + 0x268], dl
add eax, 1
jmp 0x412e4e
lea eax, [esp + 0x268]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004019c0
fnstcw word [esp + 0x74]
movzx eax, word [esp + 0x74]
or eax, 0xc00
mov word [esp + 0x1b8], ax
fldcw word [esp + 0x1b8]
fistp dword [esp + 0x2c8]
fldcw word [esp + 0x74]
mov ebx, dword [esp + 0x2c8]
lea eax, [esp + 0x424]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bd70
lea eax, [esp + 0x424]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x264]
xor edi, edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040c480
test al, 1
jne 0x412f2c
mov ebx, dword [esp + 0x2c]
jmp 0x414ad5
cmp ebx, 0
sete al
mov byte [esp + 0x4b], al
test al, 1
jne 0x412f3f
jmp 0x414079
mov al, byte [esp + 0x120]
mov byte [esp + 0x168], al
mov byte [esp + 0x25c], 0x50
mov byte [esp + 0x25d], 0xc1
mov eax, 2
mov byte [esp + eax + 0x25c], 0
add eax, 1
cmp eax, 5
jne 0x412f62
xor eax, eax
mov edi, dword [esp + 0x4c]
cmp eax, 5
jae 0x412f9a
mov cl, byte [esp + eax + 0x25c]
mov dl, al
add dl, 0x30
xor dl, cl
add dl, 0x10
mov byte [esp + eax + 0x25c], dl
add eax, 1
jmp 0x412f78
lea eax, [esp + 0x25c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401890
cmp eax, 0
setne cl
test cl, 1
jne 0x412fbd
jmp 0x413217
mov edi, eax
mov dword [esp], eax
call fcn.00414af0
mov ebx, eax
mov dword [esp + 0x250], ebx
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412feb
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp + 0xc], 0
call fcn.0040bd70
xor eax, eax
lea eax, [esp + 0x11c]
mov dword [esp], 0
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x250]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44c004]
sub esp, 0x18
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0x110]
mov byte [esp + 0x16c], al
mov byte [esp + 0x114], 0xf3
mov byte [esp + 0x115], 0x91
mov byte [esp + 0x116], 0x92
mov byte [esp + 0x117], 0x53
mov eax, 4
mov byte [esp + eax + 0x114], 0
add eax, 1
cmp eax, 5
jne 0x413085
xor ebx, ebx
cmp ebx, 5
jae 0x413116
movzx eax, byte [esp + ebx + 0x114]
mov dword [esp + 0x28c], eax
mov ecx, ebx
add ecx, 0x869220a4
mov edx, ecx
and edx, eax
mov dword [esp + 0x30], edi
mov edi, edx
and edi, 2
xor edi, 2
mov eax, edx
and eax, 0xfd
imul eax, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
mov edi, dword [esp + 0x30]
add edx, eax
add edx, 0xcce1bbe9
sub ecx, edx
add ecx, 0xcce1bbe8
add ecx, dword [esp + 0x28c]
mov eax, 0x4f
sub eax, ecx
and eax, 0xe4
and ecx, 0x1b
xor ecx, 0x10
sub ecx, eax
add cl, 1
mov byte [esp + ebx + 0x114], cl
add ebx, 1
jmp 0x413097
mov eax, dword [esp + 0x2a4]
cmp eax, dword [esp + 0x114]
sete al
test al, 1
mov ebx, dword [esp + 0x2c]
jne 0x413131
jmp 0x413151
jmp 0x413133
mov dword [esp], edi
call fcn.004095d0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
mov eax, 4
jmp 0x413203
mov eax, dword [esp + 0x11c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41316e
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov ebx, eax
mov eax, dword [0x44c004]
mov ecx, dword [esp + 0x11c]
xor edx, edx
mov dword [esp], 0
mov dword [esp + 4], edi
mov edx, dword [esp + 0x250]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x4131ed
jmp 0x4131c0
jmp 0x4131c2
mov dword [esp], ebx
call fcn.004095d0
mov ebx, dword [esp + 0x2c]
jmp 0x4131d0
mov dword [esp], edi
call fcn.004095d0
jmp 0x4131da
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
mov eax, 4
jmp 0x413203
jmp 0x4131ef
mov dword [esp], edi
call fcn.004095d0
jmp 0x4131f9
xor eax, eax
mov edi, ebx
mov ebx, dword [esp + 0x2c]
jmp 0x413203
cmp eax, 0
sete cl
test cl, 1
jne 0x4137e3
jmp 0x4137e5
call fcn.00409d70
mov edi, eax
and edi, 0xf
add edi, 0x10
xor ebx, ebx
lea ecx, [esp + 0x3e4]
jmp 0x41322f
cmp ebx, edi
jb 0x413425
mov word [ecx], 0
mov al, byte [esp + 0xf8]
mov byte [esp + 0x170], al
mov byte [esp + 0xfc], 0x5f
mov byte [esp + 0xfd], 0xbb
mov byte [esp + 0xfe], 0x4e
mov byte [esp + 0xff], 0xb9
mov byte [esp + 0x100], 0x43
mov byte [esp + 0x101], 0xbf
mov byte [esp + 0x102], 0x4d
mov byte [esp + 0x103], 0xbd
mov byte [esp + 0x104], 0x4c
mov byte [esp + 0x105], 0xb3
mov byte [esp + 0x106], 0x69
mov byte [esp + 0x107], 0xb1
mov byte [esp + 0x108], 0x5c
mov byte [esp + 0x109], 0xb7
mov byte [esp + 0x10a], 0xb6
mov byte [esp + 0x10b], 0xb5
mov eax, 0x10
mov ebx, dword [esp + 0x2c]
mov byte [esp + eax + 0xfc], 0
add eax, 1
cmp eax, 0x13
jne 0x4132d3
xor eax, eax
cmp eax, 0x13
jae 0x413307
mov cl, byte [esp + eax + 0xfc]
mov dl, al
add dl, 0x5f
xor dl, cl
add dl, 0x25
mov byte [esp + eax + 0xfc], dl
add eax, 1
jmp 0x4132e5
lea eax, [esp + 0x384]
lea ecx, [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b090
lea ecx, [esp + 0x3e4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b090
lea ecx, [esp + 0x384]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x384]
lea ecx, [esp + 0xf4]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2b8], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44c004]
sub esp, 0x18
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0xe8]
mov byte [esp + 0x174], al
mov byte [esp + 0xec], 0x43
mov byte [esp + 0xed], 0x61
mov byte [esp + 0xee], 0x62
mov byte [esp + 0xef], 0xa3
mov eax, 4
mov byte [esp + eax + 0xec], 0
add eax, 1
cmp eax, 8
jne 0x4133bc
xor ecx, ecx
cmp ecx, 8
jae 0x41340e
movzx eax, byte [esp + ecx + 0xec]
mov edx, 0x97
sub edx, ecx
or edx, eax
mov ebx, 0x97
sub ebx, ecx
mov edi, 0x97
sub edi, ecx
or ebx, edi
and ebx, eax
xor edx, 0xffffffff
or ebx, edx
add bl, 0xf8
mov byte [esp + ecx + 0xec], bl
mov ebx, dword [esp + 0x2c]
add ecx, 1
jmp 0x4133ce
mov eax, dword [esp + 0x2a0]
cmp eax, dword [esp + 0xec]
setne al
test al, 1
jne 0x413464
jmp 0x41347c
mov dword [esp + 0x288], ecx
call fcn.00409d70
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x288]
mov ecx, edx
add ecx, 2
mov word [edx], ax
add ebx, 0xd7fa3779
add ebx, 1
sub ebx, 0xd7fa3779
jmp 0x41322f
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
xor edi, edi
mov eax, 4
jmp 0x4137de
mov eax, dword [esp + 0xf4]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41349c
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov edi, dword [0x44c004]
mov ecx, dword [esp + 0xf4]
xor edx, edx
lea edx, [esp + 0x384]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2b8]
mov dword [esp + 8], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xf4]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
jge 0x413515
jmp 0x4134f3
mov edi, dword [esp + 0x30]
mov dword [esp], edi
call fcn.004095d0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
mov eax, 4
jmp 0x4137de
mov eax, dword [esp + 0xc0]
cmp eax, 0
jne 0x4135d8
mov al, byte [esp + 0xe4]
mov byte [esp + 0x178], al
mov byte [esp + 0x23c], 0xe6
mov byte [esp + 0x23d], 0x31
mov byte [esp + 0x23e], 0xaf
mov byte [esp + 0x23f], 0x33
mov byte [esp + 0x240], 0xa4
mov byte [esp + 0x241], 0x2d
mov byte [esp + 0x242], 0xb3
mov byte [esp + 0x243], 0x2f
mov byte [esp + 0x244], 0x28
mov byte [esp + 0x245], 0x29
mov eax, 0xa
mov edi, dword [esp + 0x30]
mov byte [esp + eax + 0x23c], 0
add eax, 1
cmp eax, 0x10
jne 0x41358c
xor eax, eax
cmp eax, 0x10
jae 0x4135c0
mov cl, byte [esp + eax + 0x23c]
mov dl, al
add dl, 0x4c
xor dl, cl
add dl, 0x84
mov byte [esp + eax + 0x23c], dl
add eax, 1
jmp 0x41359e
lea eax, [esp + 0x23c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00414ed0
jmp 0x4137da
cmp eax, 1
mov edi, dword [esp + 0x30]
jne 0x4136b7
mov al, byte [esp + 0xe0]
mov byte [esp + 0x17c], al
mov byte [esp + 0x22c], 0x92
mov byte [esp + 0x22d], 0xc7
mov byte [esp + 0x22e], 0xaa
mov byte [esp + 0x22f], 0xc1
mov byte [esp + 0x230], 0x54
mov byte [esp + 0x231], 0xc3
mov byte [esp + 0x232], 0x56
mov byte [esp + 0x233], 0xcd
mov byte [esp + 0x234], 0xcc
mov byte [esp + 0x235], 0xcf
mov eax, 0xa
mov byte [esp + eax + 0x22c], 0
add eax, 1
cmp eax, 0x10
jne 0x413648
xor eax, eax
cmp eax, 0x10
jae 0x41369b
movzx edx, byte [esp + eax + 0x22c]
mov ecx, eax
add ecx, 0xd1
mov ebx, 0x2e
sub ebx, eax
mov edi, 0x2e
sub edi, eax
and ebx, edi
mov edi, dword [esp + 0x30]
or ecx, edx
xor edx, 0xffffffff
or ebx, edx
and ecx, ebx
add cl, 0xeb
mov byte [esp + eax + 0x22c], cl
add eax, 1
jmp 0x41365a
lea eax, [esp + 0x22c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00414ed0
mov ebx, dword [esp + 0x2c]
jmp 0x4137da
cmp eax, 2
jne 0x4137da
mov al, byte [esp + 0xdc]
mov byte [esp + 0x180], al
mov byte [esp + 0x21c], 0x3e
mov byte [esp + 0x21d], 0xb
mov byte [esp + 0x21e], 0xfa
mov byte [esp + 0x21f], 9
mov byte [esp + 0x220], 0x85
mov byte [esp + 0x221], 7
mov byte [esp + 0x222], 0xc9
mov byte [esp + 0x223], 5
mov byte [esp + 0x224], 4
mov byte [esp + 0x225], 3
mov eax, 0xa
mov byte [esp + eax + 0x21c], 0
add eax, 1
cmp eax, 0xd
jne 0x413723
xor eax, eax
cmp eax, 0xd
jae 0x4137c5
movzx edx, byte [esp + eax + 0x21c]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x40]
add ecx, 0x826319c3
mov ebx, ecx
and ebx, edx
mov edi, ebx
and edi, 0xfd
mov eax, ebx
and eax, 2
xor eax, 2
imul eax, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
mov edi, dword [esp + 0x30]
add ebx, eax
add ecx, edx
mov edx, ecx
sub edx, ebx
mov ebx, dword [esp + 0x2c]
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, 0x30
add edx, ecx
mov eax, dword [esp + 0x40]
mov byte [esp + eax + 0x21c], dl
mov eax, dword [esp + 0x40]
shl eax, 1
and eax, 2
mov ecx, dword [esp + 0x40]
and ecx, eax
shl ecx, 1
xor dword [esp + 0x40], eax
xor dword [esp + 0x40], 1
add dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
jmp 0x413735
lea eax, [esp + 0x21c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00414ed0
jmp 0x4137da
xor eax, eax
jmp 0x4137de
cmp eax, 0
jne 0x4137e5
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x4137f4
jmp 0x414ad5
lea eax, [esp + 0x258]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call fcn.0043f870
mov dword [esp + 0x24c], eax
cmp eax, 0
jl 0x41397d
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x258]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043ffd0
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0x2b4], eax
mov al, byte [esp + 0x14c]
mov byte [esp + 0x1a4], al
mov byte [esp + 0x6c], 0x3b
mov byte [esp + 0x6d], 0x3a
mov byte [esp + 0x6e], 0x3d
mov byte [esp + 0x6f], 0x3c
xor eax, eax
cmp eax, 4
jae 0x413900
movzx ecx, byte [esp + eax + 0x6c]
mov ebx, eax
add ebx, 0x6ff474a
mov edx, 0x9900b8b5
sub edx, eax
and edx, 0xee964d3b
and ebx, 0x1169b2c4
mov edi, ecx
and edi, 0x3b
or edi, 0x1093040
and ecx, 0xc4
xor ecx, edi
xor ecx, 0xef9f7d7b
or edx, ebx
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x8e
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x4138aa
mov ecx, dword [esp + 0x6c]
xor ebx, ebx
mov edi, dword [esp + 0x30]
cmp ebx, dword [0x44c008]
jb 0x413914
jmp 0x413979
mov eax, dword [0x44c00c]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x41392a
jmp 0x41396d
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x41396d
mov dword [esp + 0x29c], ecx
mov ecx, dword [0x44c010]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0xc], eax
mov byte [esp + 0x47], dl
call fcn.0043d3e0
mov dl, byte [esp + 0x47]
mov ecx, dword [esp + 0x29c]
test dl, 1
je 0x413974
jmp 0x413979
add ebx, 1
jmp 0x41390a
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
mov dword [esp + 0x38], 0
cmp dword [esp + 0x24c], 0
setge al
test al, 1
mov edx, dword [esp + 0xc0]
jne 0x4139bb
jmp 0x4139a9
mov dword [esp + 0x34], 0
mov eax, 4
jmp 0x414066
cmp edx, 1
jne 0x413d76
mov al, byte [esp + 0xd8]
mov byte [esp + 0x184], al
mov byte [esp + 0x214], 0xa6
mov byte [esp + 0x215], 0xaf
mov byte [esp + 0x216], 0x42
mov eax, 3
mov byte [esp + eax + 0x214], 0
add eax, 1
cmp eax, 5
jne 0x4139ef
xor eax, eax
cmp eax, 5
jae 0x413a23
mov cl, byte [esp + eax + 0x214]
mov dl, al
add dl, 0x90
xor dl, cl
add dl, 0x30
mov byte [esp + eax + 0x214], dl
add eax, 1
jmp 0x413a01
lea eax, [esp + 0x214]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0xbc], eax
mov al, byte [esp + 0xd4]
mov byte [esp + 0x188], al
mov byte [esp + 0x20c], 0x27
mov byte [esp + 0x20d], 0x35
mov byte [esp + 0x20e], 0x86
mov eax, 3
mov byte [esp + eax + 0x20c], 0
add eax, 1
cmp eax, 7
jne 0x413a6c
xor eax, eax
cmp eax, 7
jae 0x413aa9
mov cl, byte [esp + eax + 0x20c]
mov dl, al
add dl, 0xe1
xor dl, cl
add dl, 0x9b
mov byte [esp + eax + 0x20c], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x413a7e
lea eax, [esp + 0x20c]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0xb8], eax
mov dword [esp], edi
call fcn.00414f20
mov ebx, eax
cmp dword [esp + 0xbc], 0
setne al
mov dword [esp + 0xb4], 0
mov byte [esp + 0x4a], al
test al, 1
jne 0x413af1
jmp 0x413b13
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.004097f0
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esp + 0xb4], eax
cmp dword [esp + 0xb8], 0
setne al
xor ecx, ecx
mov byte [esp + 0x3f], al
test al, 1
jne 0x413b2a
jmp 0x413b43
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.004097f0
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
add ebx, 0xa9a24a7f
sub ebx, 0xa9a24a76
mov eax, ebx
mov edx, dword [esp + 0xb4]
and eax, edx
or ebx, edx
add eax, ebx
mov dword [esp + 0x2c4], ecx
add eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413b89
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xd0]
mov byte [esp + 0x18c], al
mov byte [esp + 0x1f4], 0xf2
mov byte [esp + 0x1f5], 1
mov byte [esp + 0x1f6], 0xf7
mov byte [esp + 0x1f7], 3
mov byte [esp + 0x1f8], 0xea
mov byte [esp + 0x1f9], 5
mov byte [esp + 0x1fa], 0xe2
mov byte [esp + 0x1fb], 7
mov byte [esp + 0x1fc], 0xe4
mov byte [esp + 0x1fd], 9
mov byte [esp + 0x1fe], 0xe6
mov byte [esp + 0x1ff], 0xb
mov byte [esp + 0x200], 0x3f
mov byte [esp + 0x201], 0xd
mov byte [esp + 0x202], 0x3c
mov byte [esp + 0x203], 0xf
mov byte [esp + 0x204], 0x10
mov byte [esp + 0x205], 0x11
mov eax, 0x12
mov byte [esp + eax + 0x1f4], 0
add eax, 1
cmp eax, 0x15
jne 0x413c38
xor eax, eax
cmp eax, 0x15
jae 0x413c97
mov dword [esp + 0x30], edi
movzx edi, byte [esp + eax + 0x1f4]
mov ecx, 0x3f
sub ecx, eax
or ecx, edi
mov edx, 0x3f
sub edx, eax
mov ebx, 0x3f
sub ebx, eax
or edx, ebx
and edx, edi
mov edi, dword [esp + 0x30]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x40
mov byte [esp + eax + 0x1f4], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x413c4a
lea eax, [esp + 0x1f4]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b090
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], edi
call fcn.0040b090
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
cmp edi, 0
je 0x413ce6
mov dword [esp], edi
call fcn.004095d0
jmp 0x413ce6
test byte [esp + 0x4a], 1
jne 0x413cf3
mov al, byte [esp + 0x3f]
jmp 0x413d2f
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bd70
shl eax, 1
add edi, eax
mov ebx, edi
mov al, byte [esp + 0x3f]
test al, 1
jne 0x413d35
jmp 0x413d69
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bd70
jmp 0x413d69
xor edi, edi
xor edx, edx
mov ebx, dword [esp + 0x2c]
jmp 0x414064
mov dword [esp + 0x34], 0
cmp edx, 2
je 0x413d88
jmp 0x414064
mov dword [esp], edi
call fcn.00414f20
add eax, 0x1d
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413dac
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x190], al
mov byte [esp + 0x50], 0xde
mov byte [esp + 0x51], 0x39
mov byte [esp + 0x52], 0x3e
mov byte [esp + 0x53], 0x3f
xor eax, eax
cmp eax, 4
jae 0x413e0b
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0x39d5a44a
xor ecx, edx
add ecx, 0xded3ca8d
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x413ddc
mov al, byte [esp + 0xc8]
mov byte [esp + 0x194], al
mov byte [esp + 0x78], 0x1c
mov byte [esp + 0x79], 0x8f
mov byte [esp + 0x7a], 0x1f
mov byte [esp + 0x7b], 0xb1
mov byte [esp + 0x7c], 0x29
mov byte [esp + 0x7d], 0xb3
mov byte [esp + 0x7e], 0x55
mov byte [esp + 0x7f], 0xb5
mov byte [esp + 0x80], 0x26
mov byte [esp + 0x81], 0xb7
mov byte [esp + 0x82], 0x23
mov byte [esp + 0x83], 0xb9
mov byte [esp + 0x84], 0x50
mov byte [esp + 0x85], 0xbb
mov byte [esp + 0x86], 0x5d
mov byte [esp + 0x87], 0xbd
mov byte [esp + 0x88], 0x50
mov byte [esp + 0x89], 0xbf
mov byte [esp + 0x8a], 0x52
mov byte [esp + 0x8b], 0xa1
mov byte [esp + 0x8c], 0x80
mov byte [esp + 0x8d], 0xa3
mov byte [esp + 0x8e], 0x8d
mov byte [esp + 0x8f], 0xa5
mov byte [esp + 0x90], 0x43
mov byte [esp + 0x91], 0xa7
mov byte [esp + 0x92], 0x3e
mov byte [esp + 0x93], 0xa9
mov byte [esp + 0x94], 0x4f
mov byte [esp + 0x95], 0xab
mov byte [esp + 0x96], 0x4f
mov byte [esp + 0x97], 0xad
mov byte [esp + 0x98], 0x8c
mov byte [esp + 0x99], 0xaf
mov byte [esp + 0x9a], 0x4c
mov byte [esp + 0x9b], 0x51
mov byte [esp + 0x9c], 0xcb
mov byte [esp + 0x9d], 0x53
mov byte [esp + 0x9e], 0xc2
mov byte [esp + 0x9f], 0x55
mov byte [esp + 0xa0], 0xb7
mov byte [esp + 0xa1], 0x57
mov byte [esp + 0xa2], 0xc3
mov byte [esp + 0xa3], 0x59
mov byte [esp + 0xa4], 0xcd
mov byte [esp + 0xa5], 0x5b
mov byte [esp + 0xa6], 0x7a
mov byte [esp + 0xa7], 0x5d
mov byte [esp + 0xa8], 0x73
mov byte [esp + 0xa9], 0x5f
mov byte [esp + 0xaa], 0xb8
mov byte [esp + 0xab], 0x41
mov byte [esp + 0xac], 0x60
mov byte [esp + 0xad], 0x43
mov byte [esp + 0xae], 0x60
mov byte [esp + 0xaf], 0x45
mov byte [esp + 0xb0], 0x44
mov byte [esp + 0xb1], 0x47
mov eax, 0x3a
mov byte [esp + eax + 0x78], 0
add eax, 1
cmp eax, 0x3c
jne 0x413fd6
xor eax, eax
cmp eax, 0x3c
jae 0x41402d
mov cl, byte [esp + eax + 0x78]
mov byte [esp + 0x45], cl
mov ecx, eax
add ecx, 0x34b387ad
mov edx, edi
mov edi, ecx
shl edi, 1
and edi, 0x60
xor ecx, 0x30
add ecx, edi
mov edi, edx
xor cl, byte [esp + 0x45]
add cl, 0xaf
mov byte [esp + eax + 0x78], cl
mov ecx, eax
shl ecx, 1
and ecx, 0x2e
xor eax, 0x8d4fd968
sub ecx, eax
add ecx, 0x8d4fd969
mov eax, ecx
jmp 0x413fe5
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b090
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040b090
lea ecx, [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b090
mov edx, 2
jmp 0x414064
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x4143b8
jmp 0x414ad5
mov edx, dword [esp + 0xc0]
cmp ebx, 1
sete al
mov ebx, dword [esp + 0x2c]
jmp 0x41408c
mov ecx, edx
sub ecx, 2
sete cl
and al, cl
mov dword [esp + 0x34], 0
test al, 1
mov edi, 0
jne 0x4140ac
jmp 0x4143b8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00414af0
mov ebx, eax
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4140dc
mov ecx, eax
mov dword [esp], ecx
call fcn.004095c0
mov edi, eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bd70
mov eax, dword [esp + 0x264]
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe8
xor eax, eax
sub eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41413b
mov ecx, eax
mov dword [esp + 0x2c0], edi
mov dword [esp], ecx
call fcn.004095c0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xc4]
mov byte [esp + 0x198], al
mov byte [esp + 0x1bc], 0x40
mov byte [esp + 0x1bd], 0x31
mov byte [esp + 0x1be], 0x45
mov byte [esp + 0x1bf], 0x33
mov byte [esp + 0x1c0], 0x43
mov byte [esp + 0x1c1], 0x3d
mov byte [esp + 0x1c2], 0x53
mov byte [esp + 0x1c3], 0x3f
mov byte [esp + 0x1c4], 0x4a
mov byte [esp + 0x1c5], 0x39
mov byte [esp + 0x1c6], 0x49
mov byte [esp + 0x1c7], 0x3b
mov byte [esp + 0x1c8], 0x2c
mov byte [esp + 0x1c9], 0x45
mov byte [esp + 0x1ca], 0x2b
mov byte [esp + 0x1cb], 0x47
mov byte [esp + 0x1cc], 0x34
mov byte [esp + 0x1cd], 0x41
mov byte [esp + 0x1ce], 0x36
mov byte [esp + 0x1cf], 0x43
mov byte [esp + 0x1d0], 0x6c
mov byte [esp + 0x1d1], 0x4d
mov byte [esp + 0x1d2], 0x7b
mov byte [esp + 0x1d3], 0x4f
mov byte [esp + 0x1d4], 0x25
mov byte [esp + 0x1d5], 0x49
mov byte [esp + 0x1d6], 0x32
mov byte [esp + 0x1d7], 0x4b
mov byte [esp + 0x1d8], 0x39
mov byte [esp + 0x1d9], 0x55
mov byte [esp + 0x1da], 0x35
mov byte [esp + 0x1db], 0x57
mov byte [esp + 0x1dc], 0x70
mov byte [esp + 0x1dd], 0x51
mov byte [esp + 0x1de], 0x30
mov byte [esp + 0x1df], 0x53
mov byte [esp + 0x1e0], 0x25
mov byte [esp + 0x1e1], 0x5d
mov byte [esp + 0x1e2], 0x2e
mov byte [esp + 0x1e3], 0x5f
mov byte [esp + 0x1e4], 0x39
mov byte [esp + 0x1e5], 0x59
mov byte [esp + 0x1e6], 0x29
mov byte [esp + 0x1e7], 0x5b
mov byte [esp + 0x1e8], 0x17
mov byte [esp + 0x1e9], 0x65
mov byte [esp + 0x1ea], 0x46
mov byte [esp + 0x1eb], 0x67
mov byte [esp + 0x1ec], 0x60
mov byte [esp + 0x1ed], 0x61
mov eax, 0x32
mov byte [esp + eax + 0x1bc], 0
add eax, 1
cmp eax, 0x35
jne 0x4142f1
xor edi, edi
cmp edi, 0x35
jae 0x414377
mov al, byte [esp + edi + 0x1bc]
mov byte [esp + 0x49], al
movzx edx, al
mov eax, edi
xor eax, 0x18b40acb
mov ebx, edi
or ebx, 0xe74bf534
and ebx, eax
mov eax, edi
or eax, 0xe74bf534
add eax, ebx
mov ebx, eax
and ebx, edx
mov edx, ebx
and edx, 2
xor edx, 2
mov ecx, ebx
and ecx, 0xfd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
mov ecx, ebx
xor ecx, 0xffffffff
mov edx, eax
and edx, ecx
xor eax, 0xffffffff
and ebx, eax
sub edx, ebx
add dl, byte [esp + 0x49]
add dl, 0xfc
mov byte [esp + edi + 0x1bc], dl
add edi, 1
jmp 0x414303
lea eax, [esp + 0x1bc]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b090
mov dword [esp], eax
mov edi, dword [esp + 0x2c0]
mov dword [esp + 4], edi
call fcn.0040b090
mov ebx, dword [esp + 0x2c]
jmp 0x4143a7
mov dword [esp], edi
call fcn.004095d0
xor edi, edi
mov edx, 2
jmp 0x4143b8
test edx, edx
je 0x4143d9
jmp 0x4143be
mov eax, edx
sub eax, 1
je 0x414591
jmp 0x4143cb
sub edx, 2
je 0x414800
jmp 0x414a9a
test byte [esp + 0x4b], 1
jne 0x4143e5
jmp 0x414591
mov dword [esp + 0x30], edi
lea edi, [esp + 0x340]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x30]
mov dword [esp + 0x340], 0x44
mov eax, dword [0x44affc]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043ef60
test eax, eax
setne cl
xor ecx, ecx
lea edx, [esp + 0x2ec]
mov dword [esp], edi
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x340]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x41458a
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x148]
mov byte [esp + 0x1a8], al
mov byte [esp + 0x68], 0x3b
mov byte [esp + 0x69], 0x3a
mov byte [esp + 0x6a], 0x3d
mov byte [esp + 0x6b], 0x3c
xor eax, eax
cmp eax, 4
jae 0x41450f
movzx ecx, byte [esp + eax + 0x68]
mov edi, eax
add edi, 0x6ff474a
mov edx, 0x9900b8b5
sub edx, eax
and edx, 0xee964d3b
and edi, 0x1169b2c4
mov ebx, ecx
and ebx, 0x3b
or ebx, 0x1093040
and ecx, 0xc4
xor ecx, ebx
mov ebx, dword [esp + 0x2c]
xor ecx, 0xef9f7d7b
or edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x8e
mov byte [esp + eax + 0x68], cl
add eax, 1
jmp 0x4144b5
mov ecx, dword [esp + 0x68]
xor edi, edi
cmp edi, dword [0x44c008]
jb 0x41451f
jmp 0x414584
mov eax, dword [0x44c00c]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x414535
jmp 0x414570
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414570
mov dword [esp + 0x290], ecx
mov ecx, dword [0x44c010]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xc], eax
call fcn.0043d3e0
mov ecx, dword [esp + 0x290]
test bl, 1
je 0x41457b
mov ebx, dword [esp + 0x2c]
jmp 0x414584
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x414515
mov edi, dword [esp + 0x30]
jmp 0x41458a
jmp 0x41458c
jmp 0x414a9a
mov eax, dword [0x44affc]
mov dword [esp], eax
mov dword [esp + 4], 0x737de518
call fcn.0043ef60
cmp eax, 0
setne cl
test cl, 1
jne 0x4145b1
test cl, 1
jne 0x4145b8
xor eax, eax
mov ecx, dword [esp + 0x38]
xor edx, edx
lea edx, [0x422b50]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call eax
sub esp, 0x18
mov dword [esp + 0x254], eax
cmp eax, 0
setne cl
test cl, 1
jne 0x414607
jmp 0x4147fb
mov dword [esp + 0x30], edi
mov dword [esp + 0x2d4], 0xffffffff
mov dword [esp + 0x2d0], 0xdc3cba00
mov cl, byte [esp + 0x19c]
mov byte [esp + 0x1a0], cl
mov byte [esp + 0x70], 0x3b
mov byte [esp + 0x71], 0x3a
mov byte [esp + 0x72], 0x3d
mov byte [esp + 0x73], 0x3c
xor eax, eax
cmp eax, 4
jae 0x41469b
movzx edx, byte [esp + eax + 0x70]
mov ebx, eax
add ebx, 0x6ff474a
mov edi, 0x9900b8b5
sub edi, eax
and edi, 0xee964d3b
and ebx, 0x1169b2c4
mov ecx, edx
and ecx, 0x3b
or ecx, 0x1093040
and edx, 0xc4
xor edx, ecx
xor edx, 0xef9f7d7b
or edi, ebx
mov ecx, edx
and ecx, edi
shl ecx, 1
add edx, edi
sub edx, ecx
add dl, 0x8e
mov byte [esp + eax + 0x70], dl
add eax, 1
jmp 0x414645
mov edi, dword [esp + 0x70]
xor ebx, ebx
cmp ebx, dword [0x44c008]
jb 0x4146ab
jmp 0x414715
mov ecx, dword [0x44c00c]
cmp dword [ecx + ebx*8], 0x4c697c35
sete al
test al, 1
jne 0x4146c1
jmp 0x41470a
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x41470a
mov byte [esp + 0x48], al
mov eax, dword [0x44c010]
xor edx, edx
lea edx, [esp + 0x2d0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.0043d3e0
mov al, byte [esp + 0x48]
test al, 1
je 0x414710
jmp 0x414715
add ebx, 1
jmp 0x4146a1
mov al, byte [esp + 0x144]
mov byte [esp + 0x1ac], al
mov byte [esp + 0x64], 0x3b
mov byte [esp + 0x65], 0x3a
mov byte [esp + 0x66], 0x3d
mov byte [esp + 0x67], 0x3c
xor ecx, ecx
cmp ecx, 4
jae 0x41478e
movzx edx, byte [esp + ecx + 0x64]
mov ebx, ecx
add ebx, 0x6ff474a
mov edi, 0x9900b8b5
sub edi, ecx
and edi, 0xee964d3b
and ebx, 0x1169b2c4
mov eax, edx
and eax, 0x3b
or eax, 0x1093040
and edx, 0xc4
xor edx, eax
xor edx, 0xef9f7d7b
or edi, ebx
mov eax, edx
and eax, edi
shl eax, 1
add edx, edi
sub edx, eax
add dl, 0x8e
mov byte [esp + ecx + 0x64], dl
add ecx, 1
jmp 0x414739
mov edi, dword [esp + 0x64]
xor ebx, ebx
cmp ebx, dword [0x44c008]
jb 0x41479e
jmp 0x4147f3
mov ecx, dword [0x44c00c]
cmp dword [ecx + ebx*8], 0x1b6183f2
sete al
test al, 1
jne 0x4147b4
jmp 0x4147e8
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x4147e8
mov byte [esp + 0x46], al
mov eax, dword [0x44c010]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
call fcn.0043d3e0
mov al, byte [esp + 0x46]
test al, 1
je 0x4147ee
jmp 0x4147f3
add ebx, 1
jmp 0x414794
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
jmp 0x414a9a
mov dword [esp + 0x30], edi
lea edi, [esp + 0x2fc]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2fc], 0x44
mov eax, dword [0x44affc]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043ef60
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2fc]
lea edx, [esp + 0x2dc]
mov dword [esp], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x414a94
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x140]
mov byte [esp + 0x1b0], al
mov byte [esp + 0x60], 0x3b
mov byte [esp + 0x61], 0x3a
mov byte [esp + 0x62], 0x3d
mov byte [esp + 0x63], 0x3c
xor eax, eax
cmp eax, 4
jae 0x414926
movzx ecx, byte [esp + eax + 0x60]
mov edi, eax
add edi, 0x6ff474a
mov edx, 0x9900b8b5
sub edx, eax
and edx, 0xee964d3b
and edi, 0x1169b2c4
mov ebx, ecx
and ebx, 0x3b
or ebx, 0x1093040
and ecx, 0xc4
xor ecx, ebx
xor ecx, 0xef9f7d7b
or edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x8e
mov byte [esp + eax + 0x60], cl
add eax, 1
jmp 0x4148d0
mov ecx, dword [esp + 0x60]
xor edi, edi
cmp edi, dword [0x44c008]
jb 0x414936
jmp 0x414993
mov eax, dword [0x44c00c]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x41494c
jmp 0x414987
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414987
mov dword [esp + 0x298], ecx
mov ecx, dword [0x44c010]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0xc], eax
call fcn.0043d3e0
mov ecx, dword [esp + 0x298]
test bl, 1
je 0x41498e
jmp 0x414993
add edi, 1
jmp 0x41492c
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2ac], eax
mov al, byte [esp + 0x13c]
mov byte [esp + 0x1b4], al
mov byte [esp + 0x5c], 0x3b
mov byte [esp + 0x5d], 0x3a
mov byte [esp + 0x5e], 0x3d
mov byte [esp + 0x5f], 0x3c
xor eax, eax
cmp eax, 4
jae 0x414a1b
movzx ecx, byte [esp + eax + 0x5c]
mov edi, eax
add edi, 0x6ff474a
mov edx, 0x9900b8b5
sub edx, eax
and edx, 0xee964d3b
and edi, 0x1169b2c4
mov ebx, ecx
and ebx, 0x3b
or ebx, 0x1093040
and ecx, 0xc4
xor ecx, ebx
xor ecx, 0xef9f7d7b
or edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x8e
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x4149c5
mov ecx, dword [esp + 0x5c]
xor edi, edi
mov ebx, dword [esp + 0x2c]
cmp edi, dword [0x44c008]
jb 0x414a2f
jmp 0x414a94
mov eax, dword [0x44c00c]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x414a45
jmp 0x414a80
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414a80
mov dword [esp + 0x294], ecx
mov ecx, dword [0x44c010]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xc], eax
call fcn.0043d3e0
mov ecx, dword [esp + 0x294]
test bl, 1
je 0x414a8b
mov ebx, dword [esp + 0x2c]
jmp 0x414a94
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x414a25
mov edi, dword [esp + 0x30]
jmp 0x414a9a
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043aa40
cmp edi, 0
je 0x414ab7
mov dword [esp], edi
call fcn.004095d0
jmp 0x414ab5
jmp 0x414ab7
cmp dword [esp + 0x34], 0
sete al
test al, 1
jne 0x414ad3
jmp 0x414ac5
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004095d0
jmp 0x414ad3
jmp 0x414ad5
add ebx, 1
jmp 0x412b3c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret