Function at 0x4150e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1e8
mov esi, esp
mov edi, dword [ebp + 8]
call fcn.004170b0
sub esp, 8
mov dword [esi + 0x1d4], esp
push eax
mov dword [esi + 0x1d0], esp
sub esp, 8
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x1cc], esp
sub esp, 8
mov dword [esi + 0x130], esp
push eax
mov dword [esi + 0x1c8], esp
sub esp, 8
mov dword [esi + 0x12c], esp
push eax
mov dword [esi + 0x1c4], esp
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x1c0], esp
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x1bc], esp
sub esp, 0x400
mov dword [esi + 0x1b8], esp
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x128], esp
push eax
mov dword [esi + 0x1b4], esp
push eax
mov dword [esi + 0x124], esp
sub esp, 8
mov dword [esi + 0x1b0], esp
push eax
mov dword [esi + 0x1ac], esp
sub esp, 0x40
mov dword [esi + 0x120], esp
sub esp, 0x60
mov dword [esi + 0x11c], esp
sub esp, 0x14
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x1a0], esp
push eax
mov dword [esi + 0x118], esp
sub esp, 0x10
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x19c], esp
sub esp, 0xc
mov dword [esi + 0x114], esp
push eax
mov dword [esi + 0x198], esp
sub esp, 0xc
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x194], esp
push eax
mov dword [esi + 0x110], esp
sub esp, 8
mov ebx, esp
push eax
mov dword [esi + 0x190], esp
sub esp, 8
push eax
mov dword [esi + 0x1a4], esp
sub esp, 0x18
push eax
sub esp, 8
mov dword [esi + 0x28], esp
push eax
mov dword [esi + 0x18c], esp
sub esp, 0x40
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x188], esp
sub esp, 0x38
mov dword [esi + 0x184], esp
push eax
mov dword [esi + 0x180], esp
sub esp, 0x44
mov dword [esi + 0x17c], esp
sub esp, 0x10
mov dword [esi + 0x10c], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x108], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0x178], esp
sub esp, 0x10
mov dword [esi + 0x30], esp
sub esp, 4
mov dword [esp], edi
call fcn.004047f0
add esp, 4
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x41526e
jmp 0x415275
xor eax, eax
jmp 0x416c1f
mov dword [esi + 0x1a8], ebx
xor ebx, ebx
jmp 0x41527f
sub esp, 4
mov dword [esp], edi
call fcn.004049c0
add esp, 4
cmp ebx, eax
jb 0x415298
mov al, 1
jmp 0x416c1f
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], ebx
call fcn.004049d0
add esp, 8
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1d0]
mov al, byte [eax]
mov byte [esi + 0x8c], al
mov edx, dword [esi + 0x1d4]
mov byte [edx], 0xf5
mov byte [edx + 1], 0x79
mov eax, 2
mov byte [edx + eax], 0
add eax, 1
cmp eax, 7
jne 0x4152cd
mov dword [esi + 0x10], ebx
mov dword [esi + 4], edi
xor eax, eax
cmp eax, 7
jae 0x41531c
movzx edi, byte [edx + eax]
mov dword [esi + 0x138], edi
mov ecx, 0x69
sub ecx, eax
or ecx, edi
mov edi, 0x69
sub edi, eax
mov ebx, 0x69
sub ebx, eax
or ebx, edi
and ebx, dword [esi + 0x138]
sub ebx, ecx
add bl, 0x6d
mov byte [edx + eax], bl
add eax, 1
jmp 0x4152e1
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 2
call fcn.00404960
add esp, 0xc
cmp eax, 0
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x10]
je 0x415497
mov eax, dword [esi + 0x1cc]
mov al, byte [eax]
mov byte [esi + 0x90], al
mov byte [ecx], 0x66
mov byte [ecx + 1], 0x67
mov byte [ecx + 2], 0xd2
mov eax, 3
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x415369
xor eax, eax
cmp eax, 8
jae 0x4153b3
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0xdc4fdf2f
mov ecx, eax
add ecx, 0x2f
and ecx, edx
or edi, edx
xor ecx, edi
mov edi, dword [esi + 4]
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x14
add ecx, edx
mov edx, dword [esi + 0x4c]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x4c]
add eax, 1
jmp 0x415377
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00404960
add esp, 0xc
cmp eax, 0
setne al
test al, 1
mov edx, dword [esi + 0x10]
jne 0x4153e2
jmp 0x415497
mov eax, dword [esi + 0x1c8]
mov al, byte [eax]
mov byte [esi + 0x94], al
mov ecx, dword [esi + 0x130]
mov byte [ecx], 0x2b
mov byte [ecx + 1], 0x87
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 6
jne 0x415402
xor eax, eax
cmp eax, 6
jae 0x415464
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0xa1
mov ecx, 0x5e
sub ecx, eax
or ecx, edx
xor ecx, 0xffffffff
mov ebx, 0x1e
sub ebx, eax
and ebx, 0x13
and edi, 0xec
or ebx, edi
xor ebx, 0xec
mov edi, edx
add edi, 1
xor edx, 0xffffffff
or ebx, edx
add ebx, edi
or ebx, ecx
mov ecx, dword [esi + 0x130]
add bl, 0xdb
mov byte [ecx + eax], bl
add eax, 1
jmp 0x415410
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00404960
add esp, 0xc
cmp eax, 0
setne al
xor al, 0xff
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x10]
jmp 0x415491
test al, 1
jne 0x41549b
jmp 0x4154a0
jmp 0x415499
jmp 0x41549b
jmp 0x416c0f
mov eax, dword [esi + 0x1c4]
mov al, byte [eax]
mov byte [esi + 0x98], al
mov ecx, dword [esi + 0x12c]
mov byte [ecx], 0xdb
mov byte [ecx + 1], 0x47
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 6
jne 0x4154c0
xor eax, eax
mov ebx, ecx
cmp eax, 6
jae 0x415523
movzx edx, byte [ebx + eax]
mov ecx, eax
add ecx, 0xdb6745ed
mov edi, ecx
xor edi, 0xcc44d084
shl ecx, 1
and ecx, 0x67765ef6
sub ecx, edi
mov edi, edx
xor edi, 0xffffffff
mov ebx, ecx
or ebx, edi
mov edi, edx
sub edi, ecx
add edi, ebx
mov ebx, ecx
shl ebx, 1
xor ebx, 0xffffffff
add ecx, ebx
mov ebx, dword [esi + 0x12c]
and ecx, edx
xor edi, 0xffffffff
or ecx, edi
add cl, 0xcb
mov byte [ebx + eax], cl
add eax, 1
jmp 0x4154d0
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.004046e0
add esp, 8
mov dword [esi + 0x174], eax
mov eax, dword [esi + 0x1c0]
mov al, byte [eax]
mov byte [esi + 0x9c], al
mov ecx, dword [esi + 0x48]
mov byte [ecx], 0x76
mov byte [ecx + 1], 0x87
mov byte [ecx + 2], 0xa
mov eax, 3
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 4
jne 0x41555f
xor eax, eax
cmp eax, 4
jae 0x41558d
mov ecx, dword [esi + 0x48]
mov cl, byte [ecx + eax]
mov dl, al
add dl, 0x83
xor dl, cl
mov ecx, dword [esi + 0x48]
add dl, 0x71
mov byte [ecx + eax], dl
add eax, 1
jmp 0x41556d
sub esp, 8
mov dword [esp + 4], ecx
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.00404740
add esp, 8
fnstcw word [esi + 0x22]
movzx eax, word [esi + 0x22]
or eax, 0xc00
mov word [esi + 0xf6], ax
fldcw word [esi + 0xf6]
fistp dword [esi + 0x1dc]
fldcw word [esi + 0x22]
mov eax, dword [esi + 0x1dc]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1bc]
mov al, byte [eax]
mov byte [esi + 0xa0], al
mov ecx, dword [esi + 0x44]
mov byte [ecx], 5
mov byte [ecx + 1], 0x99
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 4
jne 0x4155ea
xor eax, eax
cmp eax, 4
jae 0x415629
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0x60
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x9f
sub edi, eax
and edi, edx
or ecx, edi
add cl, 2
mov edx, dword [esi + 0x44]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x44]
add eax, 1
jmp 0x4155f8
sub esp, 8
mov dword [esp + 4], ecx
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.00404740
add esp, 8
fnstcw word [esi + 0x20]
movzx eax, word [esi + 0x20]
or eax, 0xc00
mov word [esi + 0xf4], ax
fldcw word [esi + 0xf4]
fistp dword [esi + 0x1d8]
fldcw word [esi + 0x20]
mov edi, dword [esi + 0x1d8]
xor eax, eax
sub esp, 0x10
mov ebx, dword [esi + 0x1b8]
mov dword [esp], ebx
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x174]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ea90
add esp, 4
mov dword [esp], ebx
mov eax, dword [esi + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 8], eax
call fcn.0040f170
add esp, 0xc
test al, 1
jne 0x4156be
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x10]
jmp 0x416c0f
cmp edi, 0
sete cl
test cl, 1
mov byte [esi + 0x1b], cl
jne 0x4156d1
jmp 0x4162de
mov eax, dword [esi + 0x1b4]
mov al, byte [eax]
mov byte [esi + 0xa4], al
mov edi, dword [esi + 0x128]
mov byte [edi], 0x54
mov byte [edi + 1], 0xc7
mov eax, 2
mov byte [edi + eax], 0
add eax, 1
cmp eax, 4
jne 0x4156f1
xor eax, eax
cmp eax, 4
jae 0x415793
movzx edx, byte [edi + eax]
mov ecx, eax
add ecx, 0xbd22d651
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
mov edx, ecx
add edx, 0x4e51d06b
mov edi, 0xb1ae2f95
sub edi, ecx
or edi, 1
add edi, edx
mov ebx, edi
and ebx, 0xfd
mov edx, edi
and edx, 2
xor edx, 2
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, edi
mov edi, 1
sub edi, ecx
mov ebx, 0x95
sub ebx, ecx
and ebx, 0xfe
or edi, 0xfe
xor ebx, edi
mov edi, dword [esi + 0x128]
add edx, ebx
mov byte [edi + eax], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
jmp 0x4156ff
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004046e0
add esp, 8
cmp eax, 0
je 0x4158e9
sub esp, 4
mov dword [esi + 0x14c], eax
mov dword [esp], eax
call fcn.00416c30
add esp, 4
mov edi, eax
mov dword [esi + 0xfc], edi
sub edi, 0x877dd4c3
add edi, 1
sub edi, 0x877dd4c3
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4157f4
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov ebx, eax
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ea90
add esp, 0x10
xor eax, eax
sub esp, 0x18
mov dword [esp], 0
mov dword [esi + 0xf8], ebx
mov dword [esp + 4], ebx
mov eax, dword [esi + 0xfc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov edi, dword [esi + 0x124]
mov dword [esp + 0x14], edi
call dword [0x448e60]
mov eax, dword [edi]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415882
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov ebx, dword [0x448e60]
mov edi, dword [esi + 0x124]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0xf8]
mov dword [esp + 4], edx
mov edx, dword [esi + 0xfc]
mov dword [esp + 8], edx
mov dword [esi], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call ebx
sub esp, 4
mov eax, dword [esi + 0xf8]
mov dword [esp], eax
call fcn.0040c890
add esp, 4
jmp 0x4158e4
jmp 0x415df0
mov eax, dword [esi + 0x1ac]
mov al, byte [eax]
mov byte [esi + 0xa8], al
mov edi, dword [esi + 0x1b0]
mov byte [edi], 0x18
mov byte [edi + 1], 0x19
mov byte [edi + 2], 0x24
mov byte [edi + 3], 0xa4
mov eax, 4
mov byte [edi + eax], 0
add eax, 1
cmp eax, 5
jne 0x415911
xor eax, eax
cmp eax, 5
jae 0x415939
mov cl, byte [edi + eax]
mov dl, al
add dl, 0x62
xor dl, cl
add dl, 0x16
mov byte [edi + eax], dl
add eax, 1
jmp 0x41591f
mov eax, dword [edi]
mov eax, dword [eax + 0x14]
sub esp, 4
mov dword [esp], eax
call fcn.0040ced0
add esp, 4
call fcn.0040cee0
and eax, 0xf
or eax, 0x10
add eax, 0
xor ecx, ecx
mov edi, dword [esi + 0x120]
mov edx, dword [esi + 0x2c]
cmp ecx, eax
jb 0x415af6
mov word [edi], 0
mov eax, dword [esi + 0x1a0]
mov al, byte [eax]
mov byte [esi + 0xac], al
mov byte [edx], 0xe5
mov byte [edx + 1], 0xc9
mov byte [edx + 2], 0x8a
mov byte [edx + 3], 0xd7
mov byte [edx + 4], 0x99
mov byte [edx + 5], 0xd5
mov byte [edx + 6], 0x87
mov byte [edx + 7], 0xd3
mov byte [edx + 8], 0x80
mov byte [edx + 9], 0xd1
mov byte [edx + 0xa], 0xf3
mov byte [edx + 0xb], 0xdf
mov byte [edx + 0xc], 0xb8
mov byte [edx + 0xd], 0xdd
mov byte [edx + 0xe], 0xda
mov byte [edx + 0xf], 0xdb
mov eax, 0x10
mov byte [edx + eax], 0
add eax, 1
cmp eax, 0x12
jne 0x4159c4
xor eax, eax
cmp eax, 0x12
jae 0x415a15
movzx edi, byte [edx + eax]
mov ecx, 0x31
sub ecx, eax
or ecx, edi
mov edx, 0x31
sub edx, eax
mov ebx, 0x31
sub ebx, eax
or edx, ebx
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0xba
mov ecx, dword [esi + 0x2c]
mov byte [ecx + eax], dl
mov edx, dword [esi + 0x2c]
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4159d2
sub esp, 8
mov edi, dword [esi + 0x11c]
mov dword [esp], edi
mov dword [esp + 4], edx
call fcn.0040df70
mov dword [esp], eax
mov eax, dword [esi + 0x120]
mov dword [esp + 4], eax
call fcn.0040df70
add esp, 8
xor ecx, ecx
sub ecx, edi
add eax, ecx
sar eax, 1
xor ecx, ecx
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esi + 0x150], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov edi, dword [esi + 0x118]
mov dword [esp + 0x14], edi
call dword [0x448e60]
mov eax, dword [edi]
sub eax, 0xfffffffc
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415a9c
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov ebx, eax
mov eax, dword [0x448e60]
mov edi, dword [esi + 0x118]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x11c]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x150]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call eax
mov eax, dword [esi + 0x1c]
cmp eax, 0
mov dword [esi], ebx
je 0x415b36
jmp 0x415bcb
mov dword [esi + 0x148], ecx
mov ebx, eax
call fcn.0040cee0
jmp 0x415b05
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esi + 0x2c]
jmp 0x415b1a
mov ecx, edi
add ecx, 2
mov word [edi], ax
mov eax, dword [esi + 0x148]
sub eax, 0xffffffff
mov edi, ecx
mov ecx, eax
mov eax, ebx
jmp 0x415965
mov ecx, dword [esi + 0x3c]
jmp 0x415b3b
mov eax, dword [esi + 0x19c]
mov al, byte [eax]
mov byte [esi + 0xb0], al
mov byte [ecx], 0x2e
mov byte [ecx + 1], 0x41
mov byte [ecx + 2], 0xe7
mov byte [ecx + 3], 0x43
mov byte [ecx + 4], 0xdc
mov byte [ecx + 5], 0x45
mov byte [ecx + 6], 0xe3
mov byte [ecx + 7], 0x47
mov byte [ecx + 8], 0x48
mov byte [ecx + 9], 0x49
mov eax, 0xa
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xe
jne 0x415b75
xor eax, eax
cmp eax, 0xe
jae 0x415bb2
mov dl, byte [ecx + eax]
mov edi, eax
shl edi, 1
and edi, 0xe0
mov ecx, eax
xor ecx, 0xf0
add ecx, edi
xor cl, dl
add cl, 0x50
mov edx, dword [esi + 0x3c]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x3c]
add eax, 1
jmp 0x415b83
jmp 0x415bb4
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00417030
add esp, 8
jmp 0x415df0
cmp eax, 1
sete al
test al, 1
jne 0x415bda
jmp 0x415cd1
mov edi, dword [esi + 0x114]
mov eax, dword [esi + 0x198]
mov al, byte [eax]
mov byte [esi + 0xb4], al
mov byte [edi], 0xaa
mov byte [edi + 1], 0x99
mov byte [edi + 2], 0x7a
mov byte [edi + 3], 0x9f
mov byte [edi + 4], 0x70
mov byte [edi + 5], 0x9d
mov byte [edi + 6], 0x4e
mov byte [edi + 7], 0xa3
mov byte [edi + 8], 0xa0
mov byte [edi + 9], 0xa1
mov eax, 0xa
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0xc
jne 0x415c1a
xor eax, eax
cmp eax, 0xc
jae 0x415cb6
movzx ecx, byte [edi + eax]
mov edx, eax
add edx, 1
mov edi, eax
xor edi, 0xffffffff
or edi, 0xe76bbfda
add edi, edx
mov ebx, edi
and ebx, 2
xor ebx, 2
mov edx, edi
and edx, 0xfffffffd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, edx
mov edx, eax
xor edx, 0xe76bbfda
add edx, edi
mov ebx, ecx
mov dword [esi + 0x13c], ebx
mov ecx, ebx
shl ecx, 1
xor ecx, 0xffffffff
add ecx, ebx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, edx
xor ebx, 0xffffffff
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
add ecx, edi
or ecx, ebx
mov edi, dword [esi + 0x114]
mov ebx, dword [esi + 0x13c]
xor ebx, 0xffffffff
or edx, ebx
and edx, ecx
mov cl, 0x1f
sub cl, dl
mov byte [edi + eax], cl
add eax, 1
jmp 0x415c28
sub esp, 8
mov eax, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00417030
add esp, 8
jmp 0x415ccc
jmp 0x415df0
cmp dword [esi + 0x1c], 2
jne 0x415df0
mov eax, dword [esi + 0x194]
mov al, byte [eax]
mov byte [esi + 0xb8], al
mov ecx, dword [esi + 0x38]
mov byte [ecx], 0x66
mov byte [ecx + 1], 0x31
mov byte [ecx + 2], 0xa2
mov byte [ecx + 3], 0x33
mov byte [ecx + 4], 0xbf
mov byte [ecx + 5], 0x2d
mov byte [ecx + 6], 0x7f
mov byte [ecx + 7], 0x2f
mov byte [ecx + 8], 0x28
mov byte [ecx + 9], 0x29
mov eax, 0xa
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xc
jne 0x415d18
xor edi, edi
cmp edi, 0xc
jae 0x415dda
movzx ecx, byte [ecx + edi]
mov dword [esi + 0x24], edi
mov edi, dword [esi + 0x24]
add edi, 1
mov edx, dword [esi + 0x24]
xor edx, 0xffffffff
or edx, 0x1d838c
add edx, edi
mov ebx, edx
and ebx, 2
xor ebx, 2
mov edi, edx
and edi, 0xfffffffd
imul ebx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add ebx, edx
mov edi, dword [esi + 0x24]
xor edi, 0x1d838c
add edi, ebx
xor edi, ecx
mov ecx, edi
add ecx, 3
mov ebx, edi
add ebx, 0xff6c6e44
mov edx, 0x9391bc
sub edx, edi
or edx, 1
add edx, ebx
mov eax, edx
and eax, 0xfd
mov ebx, edx
and ebx, 2
xor ebx, 2
imul ebx, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, ebx
mov ebx, 0xbc
sub ebx, edi
mov edi, dword [esi + 0x24]
and ebx, 0xef
and ecx, 0x10
or ebx, ecx
xor ebx, 0xee
add ebx, edx
mov eax, dword [esi + 0x38]
mov byte [eax + edi], bl
mov ecx, dword [esi + 0x38]
add edi, 1
jmp 0x415d26
sub esp, 8
mov eax, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00417030
add esp, 8
jmp 0x415df0
xor eax, eax
sub esp, 0x1c
mov ebx, dword [esi]
mov dword [esp], ebx
mov eax, dword [esi + 0x110]
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.0043d960
add esp, 0x1c
mov dword [esi + 0x100], eax
cmp eax, 0
setge al
test al, 1
jne 0x415e49
jmp 0x415f98
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
mov ebx, dword [esi + 0x110]
mov edx, dword [ebx]
xor edi, edi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043e0e0
add esp, 0x10
mov dword [esi + 0x100], eax
mov eax, dword [ebx]
mov dword [esi + 0x170], eax
mov al, byte [esi + 0x80]
mov byte [esi + 0xe0], al
mov byte [esi + 0x84], 0x4b
mov byte [esi + 0x85], 0x4a
mov byte [esi + 0x86], 0x55
mov byte [esi + 0x87], 0x54
mov eax, 4
mov byte [esi + eax + 0x84], 0
add eax, 1
cmp eax, 7
jne 0x415eb6
xor eax, eax
mov ebx, dword [esi]
cmp eax, 7
jae 0x415f02
mov dl, byte [esi + eax + 0x84]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x84], dl
add eax, 1
jmp 0x415eca
mov edx, dword [esi + 0x84]
xor edi, edi
mov eax, 2
cmp edi, dword [0x448e64]
jb 0x415f19
jmp 0x415f93
mov dword [esi], ebx
mov ecx, dword [0x448e68]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bh
xor eax, eax
mov bl, bh
test bh, 1
jne 0x415f36
jmp 0x415f7d
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x415f7d
mov eax, dword [0x448e6c]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x170]
mov dword [esp + 0xc], eax
mov dword [esi + 0x164], edx
call fcn.0043a3b0
mov edx, dword [esi + 0x164]
add esp, 0x10
mov eax, 1
test bl, 1
je 0x415f86
mov ebx, dword [esi]
jmp 0x415f93
add edi, 0xc7b0611d
mov ebx, dword [esi]
jmp 0x415f0a
cmp eax, 2
jne 0x415f98
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.00436f60
add esp, 4
mov dword [edi], 0
cmp dword [esi + 0x100], 0
setge al
test al, 1
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x10]
jne 0x415fd8
jmp 0x415fc7
mov dword [esi + 8], 0
mov eax, 4
jmp 0x4162d0
mov eax, dword [esi + 0x1c]
cmp eax, 1
jne 0x416075
mov eax, dword [esi + 0x190]
mov al, byte [eax]
mov byte [esi + 0xbc], al
mov edi, dword [esi + 0x1a8]
mov byte [edi], 0x12
mov byte [edi + 1], 0x6b
mov byte [edi + 2], 0xfe
mov eax, 3
mov byte [edi + eax], 0
add eax, 1
cmp eax, 8
jne 0x416008
xor eax, eax
cmp eax, 8
jae 0x416050
movzx edx, byte [edi + eax]
mov ecx, eax
add ecx, 0xe749b19c
xor ecx, edx
mov edx, ecx
and edx, 0x2d
or ecx, 0x2d
add ecx, 0x46
add ecx, edx
add cl, 0x47
mov byte [edi + eax], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
and edx, ecx
or eax, ecx
xor eax, 1
add eax, edx
jmp 0x416016
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004046e0
add esp, 8
mov eax, dword [esi + 0x1a4]
mov al, byte [eax]
mov byte [esi + 0xc0], al
jmp 0x416073
mov dword [esi + 8], 0
cmp eax, 2
jne 0x4162ce
sub esp, 4
mov dword [esp], ebx
call fcn.00417080
add esp, 4
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe3
xor eax, eax
sub eax, ecx
add eax, 0x6c709ca5
add eax, 1
add eax, 0x6c709ca5
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4160c4
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov dword [esi + 8], eax
mov eax, dword [esi + 0x18c]
mov al, byte [eax]
mov byte [esi + 0xc4], al
mov ecx, dword [esi + 0x28]
mov byte [ecx], 0xe2
mov byte [ecx + 1], 0xc1
mov byte [ecx + 2], 0xc2
mov byte [ecx + 3], 0xc3
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 7
jne 0x4160fa
xor eax, eax
cmp eax, 7
jae 0x416150
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0xde0c3850
xor ecx, edx
mov edx, ecx
xor edx, 0x91
shl ecx, 1
and ecx, 0xdc
sub ecx, edx
add cl, 1
mov edx, dword [esi + 0x28]
mov byte [edx + eax], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
mov ecx, dword [esi + 0x28]
jmp 0x416108
mov eax, dword [esi + 0x188]
mov al, byte [eax]
mov byte [esi + 0xc8], al
mov ecx, dword [esi + 0x34]
mov byte [ecx], 0x14
mov byte [ecx + 1], 0xeb
mov byte [ecx + 2], 0x1b
mov byte [ecx + 3], 0xe9
mov byte [ecx + 4], 0x11
mov byte [ecx + 5], 0xef
mov byte [ecx + 6], 5
mov byte [ecx + 7], 0xed
mov byte [ecx + 8], 0x1a
mov byte [ecx + 9], 0xf3
mov byte [ecx + 0xa], 7
mov byte [ecx + 0xb], 0xf1
mov byte [ecx + 0xc], 0x18
mov byte [ecx + 0xd], 0xf7
mov byte [ecx + 0xe], 0x1d
mov byte [ecx + 0xf], 0xf5
mov byte [ecx + 0x10], 0x18
mov byte [ecx + 0x11], 0xfb
mov byte [ecx + 0x12], 0x16
mov byte [ecx + 0x13], 0xf9
mov byte [ecx + 0x14], 0xd8
mov byte [ecx + 0x15], 0xff
mov byte [ecx + 0x16], 0xcd
mov byte [ecx + 0x17], 0xfd
mov byte [ecx + 0x18], 0x17
mov byte [ecx + 0x19], 0x83
mov byte [ecx + 0x1a], 0x7a
mov byte [ecx + 0x1b], 0x81
mov byte [ecx + 0x1c], 0x6b
mov byte [ecx + 0x1d], 0x87
mov byte [ecx + 0x1e], 0x63
mov byte [ecx + 0x1f], 0x85
mov byte [ecx + 0x20], 0xa4
mov byte [ecx + 0x21], 0x8b
mov byte [ecx + 0x22], 0x6c
mov byte [ecx + 0x23], 0x89
mov byte [ecx + 0x24], 0x77
mov byte [ecx + 0x25], 0x8f
mov byte [ecx + 0x26], 0x7e
mov byte [ecx + 0x27], 0x8d
mov byte [ecx + 0x28], 0x6b
mov byte [ecx + 0x29], 0x93
mov byte [ecx + 0x2a], 0x67
mov byte [ecx + 0x2b], 0x91
mov byte [ecx + 0x2c], 0x65
mov byte [ecx + 0x2d], 0x97
mov byte [ecx + 0x2e], 0xb6
mov byte [ecx + 0x2f], 0x95
mov byte [ecx + 0x30], 0xa7
mov byte [ecx + 0x31], 0x9b
mov byte [ecx + 0x32], 0x70
mov byte [ecx + 0x33], 0x99
mov byte [ecx + 0x34], 0xb8
mov byte [ecx + 0x35], 0x9f
mov byte [ecx + 0x36], 0xb8
mov byte [ecx + 0x37], 0x9d
mov byte [ecx + 0x38], 0x9c
mov byte [ecx + 0x39], 0xa3
mov eax, 0x3a
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x40
jne 0x41624d
xor eax, eax
cmp eax, 0x40
jae 0x41628f
mov ecx, dword [esi + 0x34]
mov cl, byte [ecx + eax]
mov edx, eax
shl edx, 1
and edx, 0x4e
mov edi, eax
shl edi, 1
and edi, 0x4e
add edi, 0x59
mov ebx, eax
sub ebx, edi
add ebx, edx
xor bl, cl
mov ecx, dword [esi + 0x34]
add bl, 0x15
mov byte [ecx + eax], bl
mov ebx, dword [esi]
add eax, 1
jmp 0x41625b
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040df70
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040df70
mov dword [esp], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 4], eax
call fcn.0040df70
add esp, 8
mov edi, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x1c], 2
jmp 0x4162ce
xor eax, eax
cmp eax, 0
je 0x4164db
jmp 0x416c0f
xor edi, 1
mov eax, dword [esi + 0x1c]
xor eax, 2
or edi, eax
sete al
mov dword [esi + 8], 0
test al, 1
jne 0x416301
xor ebx, ebx
mov edi, dword [esi + 4]
jmp 0x4164db
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00416c30
add esp, 4
mov edi, eax
and edi, 1
or eax, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
jmp 0x41632c
mov ecx, 0xffffffff
test dl, 1
jne 0x416338
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ea90
add esp, 0x10
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, eax
mov eax, 0x18
sub eax, ecx
add eax, 0x1a6e52b1
add eax, 1
add eax, 0x1a6e52b1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4163a0
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c880
add esp, 4
mov dword [esi + 8], eax
mov eax, dword [esi + 0x180]
mov al, byte [eax]
mov byte [esi + 0xcc], al
mov ecx, dword [esi + 0x184]
mov byte [ecx], 0x80
mov byte [ecx + 1], 0x11
mov byte [ecx + 2], 0x85
mov byte [ecx + 3], 0x13
mov byte [ecx + 4], 0x83
mov byte [ecx + 5], 0x1d
mov byte [ecx + 6], 0xf3
mov byte [ecx + 7], 0x1f
mov byte [ecx + 8], 0x8a
mov byte [ecx + 9], 0x19
mov byte [ecx + 0xa], 0x89
mov byte [ecx + 0xb], 0x1b
mov byte [ecx + 0xc], 0xec
mov byte [ecx + 0xd], 5
mov byte [ecx + 0xe], 0xeb
mov byte [ecx + 0xf], 7
mov byte [ecx + 0x10], 0x94
mov byte [ecx + 0x11], 1
mov byte [ecx + 0x12], 0x96
mov byte [ecx + 0x13], 3
mov byte [ecx + 0x14], 0x2c
mov byte [ecx + 0x15], 0xd
mov byte [ecx + 0x16], 0xdb
mov byte [ecx + 0x17], 0xf
mov byte [ecx + 0x18], 0xe5
mov byte [ecx + 0x19], 9
mov byte [ecx + 0x1a], 0x92
mov byte [ecx + 0x1b], 0xb
mov byte [ecx + 0x1c], 0xd9
mov byte [ecx + 0x1d], 0x35
mov byte [ecx + 0x1e], 0xd5
mov byte [ecx + 0x1f], 0x37
mov byte [ecx + 0x20], 0x10
mov byte [ecx + 0x21], 0x31
mov byte [ecx + 0x22], 0xd0
mov byte [ecx + 0x23], 0x33
mov byte [ecx + 0x24], 0xa5
mov byte [ecx + 0x25], 0x3d
mov byte [ecx + 0x26], 0xae
mov byte [ecx + 0x27], 0x3f
mov byte [ecx + 0x28], 0xd9
mov byte [ecx + 0x29], 0x39
mov byte [ecx + 0x2a], 0xa9
mov byte [ecx + 0x2b], 0x3b
mov byte [ecx + 0x2c], 0xb7
mov byte [ecx + 0x2d], 0x25
mov byte [ecx + 0x2e], 6
mov byte [ecx + 0x2f], 0x27
mov byte [ecx + 0x30], 0x20
mov byte [ecx + 0x31], 0x21
mov eax, 0x32
mov edi, dword [esi + 4]
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x36
jne 0x416494
mov al, byte [ecx]
xor al, 0xc4
add al, 0x2c
mov byte [ecx], al
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040df70
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040df70
add esp, 8
sub esp, 4
mov dword [esp], ebx
call fcn.0040c890
add esp, 4
xor ebx, ebx
jmp 0x4164db
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x4164ff
jmp 0x4164e4
mov eax, ecx
sub eax, 1
je 0x4166bc
jmp 0x4164f1
sub ecx, 2
je 0x416941
jmp 0x416bc1
test byte [esi + 0x1b], 1
jne 0x41650a
jmp 0x4166bc
mov dword [esi], ebx
call fcn.004170b0
xor eax, eax
mov ecx, 0x11
mov ebx, dword [esi + 0x17c]
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebx], 0x44
mov eax, dword [0x448e58]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043cfb0
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov ecx, dword [esi]
mov dword [esp], ecx
mov ecx, dword [esi + 8]
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
mov dword [esp + 0x20], ebx
mov ecx, dword [esi + 0x10c]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
setne al
test al, 1
mov edi, dword [esi + 4]
mov ebx, dword [esi]
jne 0x4165ad
jmp 0x4166b5
mov eax, dword [esi + 0x10c]
mov eax, dword [eax]
mov dword [esi + 0x16c], eax
mov al, byte [esi + 0x74]
mov byte [esi + 0xe4], al
mov byte [esi + 0x78], 0x4b
mov byte [esi + 0x79], 0x4a
mov byte [esi + 0x7a], 0x55
mov byte [esi + 0x7b], 0x54
mov eax, 4
mov byte [esi + eax + 0x78], 0
add eax, 1
cmp eax, 7
jne 0x4165d9
xor eax, eax
cmp eax, 7
jae 0x41661a
mov dl, byte [esi + eax + 0x78]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x78], dl
add eax, 1
jmp 0x4165e8
mov eax, dword [esi + 0x78]
mov dword [esi + 0x154], eax
xor edi, edi
mov eax, 2
cmp edi, dword [0x448e64]
jb 0x416634
jmp 0x4166ad
mov eax, dword [0x448e68]
mov dword [esi + 0x134], eax
cmp dword [eax + edi*8], 0xb62b8d10
sete cl
xor eax, eax
mov byte [esi + 0x18], cl
test cl, 1
jne 0x416655
jmp 0x41669a
mov eax, dword [esi + 0x134]
mov ecx, dword [eax + edi*8 + 4]
mov eax, 2
cmp ecx, dword [esi + 0x154]
je 0x41669a
mov eax, dword [0x448e6c]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x16c]
mov dword [esp + 0xc], eax
call fcn.0043a3b0
add esp, 0x10
mov eax, 1
test byte [esi + 0x18], 1
je 0x4166a2
jmp 0x4166ad
add edi, 0xc7b0611d
jmp 0x416625
cmp eax, 2
mov edi, dword [esi + 4]
jne 0x4166b5
jmp 0x4166b7
jmp 0x416bc1
mov eax, dword [0x448e58]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.0043cfb0
add esp, 8
test eax, eax
setne cl
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
xor edx, edx
lea edx, [0x4205f0]
sub esp, 0x18
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
cmp eax, 0
je 0x41693c
mov dword [esi + 0x104], eax
call fcn.004170b0
mov eax, dword [esi + 0x108]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xdc3cba00
mov al, byte [esi + 0xd0]
mov byte [esi + 0xdc], al
mov byte [esi + 0xd4], 0x4b
mov byte [esi + 0xd5], 0x4a
mov byte [esi + 0xd6], 0x55
mov byte [esi + 0xd7], 0x54
mov eax, 4
mov byte [esi + eax + 0xd4], 0
add eax, 1
cmp eax, 7
jne 0x416769
xor eax, eax
cmp eax, 7
jae 0x4167b3
mov dl, byte [esi + eax + 0xd4]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0xd4], dl
add eax, 1
jmp 0x41677b
mov dword [esi], ebx
mov ebx, dword [esi + 0xd4]
xor edi, edi
cmp edi, dword [0x448e64]
jb 0x4167ca
jmp 0x41684a
mov eax, dword [0x448e68]
cmp dword [eax + edi*8], 0x4e66b5a3
sete cl
mov byte [esi + 0x1a], cl
test cl, 1
jne 0x4167e3
jmp 0x416837
mov eax, dword [eax + edi*8 + 4]
cmp eax, ebx
jne 0x4167ed
jmp 0x416837
mov dword [esi + 0x168], ebx
mov ecx, dword [0x448e6c]
xor edx, edx
sub esp, 0x18
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
mov eax, dword [esi + 0x104]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x108]
mov dword [esp + 0x14], eax
call fcn.0043a3b0
mov ebx, dword [esi + 0x168]
add esp, 0x18
test byte [esi + 0x1a], 1
je 0x41683f
jmp 0x41684a
add edi, 0x191e1a43
jmp 0x4167bd
mov al, byte [esi + 0x68]
mov byte [esi + 0xe8], al
mov byte [esi + 0x6c], 0x4b
mov byte [esi + 0x6d], 0x4a
mov byte [esi + 0x6e], 0x55
mov byte [esi + 0x6f], 0x54
mov eax, 4
mov ebx, dword [esi]
mov byte [esi + eax + 0x6c], 0
add eax, 1
cmp eax, 7
jne 0x41686a
xor eax, eax
cmp eax, 7
jae 0x4168ab
mov dl, byte [esi + eax + 0x6c]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x6c], dl
add eax, 1
jmp 0x416879
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x158], eax
xor edi, edi
mov eax, 2
cmp edi, dword [0x448e64]
jb 0x4168c5
jmp 0x416932
mov ebx, dword [0x448e68]
cmp dword [ebx + edi*8], 0xb62b8d10
sete cl
xor eax, eax
mov byte [esi + 0x19], cl
test cl, 1
jne 0x4168e1
jmp 0x416920
mov ecx, dword [ebx + edi*8 + 4]
mov eax, 2
cmp ecx, dword [esi + 0x158]
je 0x416920
mov eax, dword [0x448e6c]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x104]
mov dword [esp + 0xc], eax
call fcn.0043a3b0
add esp, 0x10
mov eax, 1
test byte [esi + 0x19], 1
mov ebx, dword [esi]
je 0x41692a
jmp 0x416932
add edi, 0xc7b0611d
jmp 0x4168b6
cmp eax, 2
mov edi, dword [esi + 4]
jne 0x41693a
jmp 0x41693c
jmp 0x416bc1
mov dword [esi], ebx
xor eax, eax
mov ecx, 0x11
mov ebx, dword [esi + 0x178]
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebx], 0x44
mov eax, dword [0x448e58]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043cfb0
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov dword [esp], 0
mov ecx, dword [esi + 8]
mov dword [esp + 4], ecx
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], ebx
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
je 0x416bbc
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 4]
mov dword [esi + 0x160], eax
mov al, byte [esi + 0x5c]
mov byte [esi + 0xec], al
mov byte [esi + 0x60], 0x4b
mov byte [esi + 0x61], 0x4a
mov byte [esi + 0x62], 0x55
mov byte [esi + 0x63], 0x54
mov eax, 4
mov byte [esi + eax + 0x60], 0
add eax, 1
cmp eax, 7
jne 0x4169fd
xor eax, eax
cmp eax, 7
jae 0x416a3e
mov dl, byte [esi + eax + 0x60]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x60], dl
add eax, 1
jmp 0x416a0c
mov edx, dword [esi + 0x60]
xor edi, edi
mov eax, 2
cmp edi, dword [0x448e64]
jb 0x416a52
jmp 0x416ac3
mov ecx, dword [0x448e68]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bh
xor eax, eax
mov bl, bh
test bh, 1
jne 0x416a6d
jmp 0x416ab4
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x416ab4
mov eax, dword [0x448e6c]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x160]
mov dword [esp + 0xc], eax
mov dword [esi + 0x144], edx
call fcn.0043a3b0
mov edx, dword [esi + 0x144]
add esp, 0x10
mov eax, 1
test bl, 1
je 0x416abb
jmp 0x416ac3
add edi, 0xc7b0611d
jmp 0x416a43
cmp eax, 2
jne 0x416ac8
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov dword [esi + 0x15c], eax
mov al, byte [esi + 0x50]
mov byte [esi + 0xf0], al
mov byte [esi + 0x54], 0x4b
mov byte [esi + 0x55], 0x4a
mov byte [esi + 0x56], 0x55
mov byte [esi + 0x57], 0x54
mov eax, 4
mov byte [esi + eax + 0x54], 0
add eax, 1
cmp eax, 7
jne 0x416af1
xor eax, eax
cmp eax, 7
jae 0x416b32
mov dl, byte [esi + eax + 0x54]
mov edi, eax
add edi, 0xe
mov ecx, 0x71
sub ecx, eax
and ecx, 0x96
and edi, 0x69
or ecx, edi
xor cl, dl
xor cl, 0x69
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x54], dl
add eax, 1
jmp 0x416b00
mov edx, dword [esi + 0x54]
xor edi, edi
mov eax, 2
cmp edi, dword [0x448e64]
jb 0x416b46
jmp 0x416bb7
mov ecx, dword [0x448e68]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bh
xor eax, eax
mov bl, bh
test bh, 1
jne 0x416b61
jmp 0x416ba8
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x416ba8
mov eax, dword [0x448e6c]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x15c]
mov dword [esp + 0xc], eax
mov dword [esi + 0x140], edx
call fcn.0043a3b0
mov edx, dword [esi + 0x140]
add esp, 0x10
mov eax, 1
test bl, 1
je 0x416baf
jmp 0x416bb7
add edi, 0xc7b0611d
jmp 0x416b37
cmp eax, 2
jne 0x416bbc
mov edi, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00436f60
add esp, 4
cmp ebx, 0
je 0x416be7
sub esp, 4
mov dword [esp], ebx
call fcn.0040c890
add esp, 4
cmp dword [esi + 8], 0
sete al
mov edx, dword [esi + 0x10]
test al, 1
jne 0x416c0d
jmp 0x416bf7
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0040c890
add esp, 4
mov edx, dword [esi + 0x10]
jmp 0x416c0d
jmp 0x416c0f
xor eax, eax
sub eax, edx
add eax, 0xffffffff
xor ebx, ebx
sub ebx, eax
jmp 0x41527f
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret