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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1e0
lea eax, [esp + 0x140]
lea ecx, [0x444c1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
call fcn.00408dc0
lea eax, [esp + 0x140]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd8]
add eax, 0x2c
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x118]
jne 0x4368c4
mov dword [esp + 0x1c], 2
jmp 0x436cc8
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x114], eax
mov al, byte [esp + 0x44]
mov byte [esp + 0x48], al
mov dword [esp + 0x2c], 0x30
movzx eax, byte [esp + 0x2c]
add eax, 0xc
xor eax, 0x94
mov byte [esp + 0xe0], al
movzx eax, byte [esp + 0x2d]
add eax, 0xc
xor eax, 0x95
mov byte [esp + 0xe1], al
movzx eax, byte [esp + 0x2e]
add eax, 0xc
xor eax, 0x96
mov byte [esp + 0xe2], al
movzx eax, byte [esp + 0x2f]
add eax, 0xc
xor eax, 0x97
mov byte [esp + 0xe3], al
mov eax, 4
mov byte [esp + eax + 0xe0], 0
add eax, 1
cmp eax, 0xa
jne 0x436936
xor esi, esi
cmp esi, 0xa
jae 0x4369ba
call fcn.00409740
call fcn.00409740
movzx edx, byte [esp + esi + 0xe0]
mov ecx, esi
add ecx, 0xbe4c6694
mov edi, edx
not edi
mov eax, ecx
and eax, edi
mov ebx, 0x41b3996b
sub ebx, esi
mov dword [esp + 0xf4], esi
mov esi, ebx
xor esi, edx
mov edi, ebx
and edi, edx
add edi, edi
sub ebx, edi
add ebx, edx
and ecx, edx
add esi, edx
sub esi, ecx
not ebx
and esi, ebx
or eax, esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x11c]
add al, 0xf4
mov byte [esp + esi + 0xe0], al
add esi, 1
jmp 0x436948
call fcn.00409740
call fcn.00409740
mov eax, dword [esp + 0xe0]
mov eax, dword fs:[eax]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], eax
jmp 0x4369e8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xd4]
mov ecx, dword [ecx + 0xc]
add ecx, 0xc
cmp eax, ecx
jne 0x436a0a
mov dword [esp + 0x1c], 4
jmp 0x436c8d
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x30]
xor eax, eax
cmp ecx, 0
je 0x436c54
mov al, byte [esp + 0x40]
mov byte [esp + 0x4c], al
mov dword [esp + 0x30], 0x18d40b1a
movzx ecx, byte [esp + 0x30]
mov edx, ecx
add edx, 0x61
mov eax, 0x1e
sub eax, ecx
and eax, 0x1e
and edx, 0xe1
or eax, edx
xor eax, 0x57
xor al, 0x1e
mov byte [esp + 0x128], al
movzx ecx, byte [esp + 0x31]
mov edx, ecx
add edx, 0x61
mov eax, 0x1e
sub eax, ecx
and eax, 0x1e
and edx, 0xe1
or eax, edx
xor eax, 0x58
xor al, 0x1e
mov byte [esp + 0x129], al
movzx ecx, byte [esp + 0x32]
mov edx, ecx
add edx, 0x61
mov eax, 0x1e
sub eax, ecx
and eax, 0x1e
and edx, 0xe1
or eax, edx
xor eax, 0x59
xor al, 0x1e
mov byte [esp + 0x12a], al
movzx ecx, byte [esp + 0x33]
mov edx, ecx
add edx, 0x61
mov eax, 0x1e
sub eax, ecx
and eax, 0x1e
and edx, 0xe1
or eax, edx
xor eax, 0x5a
xor al, 0x1e
mov byte [esp + 0x12b], al
mov eax, 4
mov byte [esp + eax + 0x128], 0
add eax, 1
cmp eax, 0xa
jne 0x436adf
lea eax, [esp + 0x128]
mov dword [esp + 0xdc], eax
xor eax, eax
mov dword [esp + 0x54], eax
cmp dword [esp + 0x54], 0xa
jae 0x436c26
call fcn.00409740
call fcn.00409740
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x108], eax
movzx ebx, byte [eax + esi]
call fcn.00409740
call fcn.00409740
mov ecx, esi
mov dword [esp + 0x104], ecx
mov eax, ecx
and eax, 1
xor ecx, 1
lea edx, [ecx + eax*2]
mov dword [esp + 0xf0], edx
lea edi, [ecx + eax*2 + 0x7d8fa956]
mov esi, ebx
add esi, esi
not esi
add esi, ebx
and esi, edi
mov ecx, esi
add ecx, ecx
not ecx
mov eax, esi
add eax, ecx
mov ecx, esi
and ecx, 0xfffffffd
and eax, 2
imul eax, ecx
mov ecx, esi
and ecx, 2
mov edx, esi
or edx, 2
imul edx, ecx
add edx, eax
not edx
add esi, edx
mov ecx, dword [esp + 0xf0]
lea eax, [ecx + ecx - 0x4e0ad54]
not eax
lea eax, [eax + ecx + 0x7d8fa956]
mov ecx, edi
and ecx, 0x3f
and eax, 0xc0
or ecx, eax
mov eax, edi
xor eax, ecx
xor eax, 0x3f
and edi, eax
not edi
and edi, ebx
mov eax, edi
not eax
mov ecx, edi
add ecx, ecx
not ecx
mov edx, edi
add edx, ecx
mov ebx, edx
not ebx
and edx, 2
and ebx, 0xfffffffd
imul ebx, edx
mov ecx, edi
and ecx, 2
mov edx, edi
or edx, 2
imul edx, ecx
mov ecx, edx
add ecx, ebx
lea edx, [edx + ebx + 1]
and edx, eax
xor ecx, 0xfffffffe
and edi, ecx
sub edi, edx
and esi, edi
not esi
mov dword [esp + 0x120], esi
mov eax, dword [esp + 0x120]
add al, 0x9f
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x54]
add eax, 1
jmp 0x436aff
mov eax, dword [esp + 0xdc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd0]
add ecx, 0x2c
add ecx, 4
mov ecx, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00437f70
cmp eax, dword [esp + 0x114]
sete al
test al, 1
jne 0x436c5a
jmp 0x436c6b
mov byte [esp + 0x23], 1
jmp 0x436c61
mov dword [esp + 0x1c], 1
jmp 0x436c73
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x1c], 0
jne 0x436c8b
jmp 0x436c7c
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
jmp 0x4369e8
jmp 0x436c8d
cmp dword [esp + 0x1c], 4
jne 0x436c9c
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x1c], 0
jne 0x436cad
mov dword [esp + 0x1c], 0
jmp 0x436cad
cmp dword [esp + 0x1c], 0
jne 0x436cc6
jmp 0x436cb6
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x28], eax
jmp 0x4368aa
jmp 0x436cc8
cmp dword [esp + 0x1c], 2
jne 0x437f5b
mov al, byte [esp + 0x3c]
mov byte [esp + 0x50], al
lea eax, [0x4456f2]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x13c], eax
mov byte [esp + 0x58], 0x51
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 1]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e808
shl ecx, 1
add eax, 0x5d15e808
sub eax, ecx
mov byte [esp + 0x59], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e809
shl ecx, 1
add eax, 0x5d15e809
sub eax, ecx
mov byte [esp + 0x5a], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80a
shl ecx, 1
add eax, 0x5d15e80a
sub eax, ecx
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80b
shl ecx, 1
add eax, 0x5d15e80b
sub eax, ecx
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 5]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80c
shl ecx, 1
add eax, 0x5d15e80c
sub eax, ecx
mov byte [esp + 0x5d], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 6]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80d
shl ecx, 1
add eax, 0x5d15e80d
sub eax, ecx
mov byte [esp + 0x5e], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 7]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80e
shl ecx, 1
add eax, 0x5d15e80e
sub eax, ecx
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 8]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e80f
shl ecx, 1
add eax, 0x5d15e80f
sub eax, ecx
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 9]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e810
shl ecx, 1
add eax, 0x5d15e810
sub eax, ecx
mov byte [esp + 0x61], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xa]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e811
shl ecx, 1
add eax, 0x5d15e811
sub eax, ecx
mov byte [esp + 0x62], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xb]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e812
shl ecx, 1
add eax, 0x5d15e812
sub eax, ecx
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xc]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e813
shl ecx, 1
add eax, 0x5d15e813
sub eax, ecx
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xd]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e814
shl ecx, 1
add eax, 0x5d15e814
sub eax, ecx
mov byte [esp + 0x65], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xe]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e815
shl ecx, 1
add eax, 0x5d15e815
sub eax, ecx
mov byte [esp + 0x66], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xf]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e816
shl ecx, 1
add eax, 0x5d15e816
sub eax, ecx
mov byte [esp + 0x67], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x10]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e817
shl ecx, 1
add eax, 0x5d15e817
sub eax, ecx
mov byte [esp + 0x68], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x11]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e818
shl ecx, 1
add eax, 0x5d15e818
sub eax, ecx
mov byte [esp + 0x69], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x12]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e819
shl ecx, 1
add eax, 0x5d15e819
sub eax, ecx
mov byte [esp + 0x6a], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81a
shl ecx, 1
add eax, 0x5d15e81a
sub eax, ecx
mov byte [esp + 0x6b], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x14]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81b
shl ecx, 1
add eax, 0x5d15e81b
sub eax, ecx
mov byte [esp + 0x6c], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x15]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81c
shl ecx, 1
add eax, 0x5d15e81c
sub eax, ecx
mov byte [esp + 0x6d], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x16]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81d
shl ecx, 1
add eax, 0x5d15e81d
sub eax, ecx
mov byte [esp + 0x6e], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x17]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81e
shl ecx, 1
add eax, 0x5d15e81e
sub eax, ecx
mov byte [esp + 0x6f], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x18]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e81f
shl ecx, 1
add eax, 0x5d15e81f
sub eax, ecx
mov byte [esp + 0x70], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x19]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e820
shl ecx, 1
add eax, 0x5d15e820
sub eax, ecx
mov byte [esp + 0x71], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e821
shl ecx, 1
add eax, 0x5d15e821
sub eax, ecx
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e822
shl ecx, 1
add eax, 0x5d15e822
sub eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e823
shl ecx, 1
add eax, 0x5d15e823
sub eax, ecx
mov byte [esp + 0x74], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e824
shl ecx, 1
add eax, 0x5d15e824
sub eax, ecx
mov byte [esp + 0x75], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e825
shl ecx, 1
add eax, 0x5d15e825
sub eax, ecx
mov byte [esp + 0x76], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x1f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e826
shl ecx, 1
add eax, 0x5d15e826
sub eax, ecx
mov byte [esp + 0x77], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x20]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e827
shl ecx, 1
add eax, 0x5d15e827
sub eax, ecx
mov byte [esp + 0x78], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x21]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e828
shl ecx, 1
add eax, 0x5d15e828
sub eax, ecx
mov byte [esp + 0x79], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x22]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e829
shl ecx, 1
add eax, 0x5d15e829
sub eax, ecx
mov byte [esp + 0x7a], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x23]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82a
shl ecx, 1
add eax, 0x5d15e82a
sub eax, ecx
mov byte [esp + 0x7b], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x24]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82b
shl ecx, 1
add eax, 0x5d15e82b
sub eax, ecx
mov byte [esp + 0x7c], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x25]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82c
shl ecx, 1
add eax, 0x5d15e82c
sub eax, ecx
mov byte [esp + 0x7d], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x26]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82d
shl ecx, 1
add eax, 0x5d15e82d
sub eax, ecx
mov byte [esp + 0x7e], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x27]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82e
shl ecx, 1
add eax, 0x5d15e82e
sub eax, ecx
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x28]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e82f
shl ecx, 1
add eax, 0x5d15e82f
sub eax, ecx
mov byte [esp + 0x80], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x29]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e830
shl ecx, 1
add eax, 0x5d15e830
sub eax, ecx
mov byte [esp + 0x81], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e831
shl ecx, 1
add eax, 0x5d15e831
sub eax, ecx
mov byte [esp + 0x82], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e832
shl ecx, 1
add eax, 0x5d15e832
sub eax, ecx
mov byte [esp + 0x83], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e833
shl ecx, 1
add eax, 0x5d15e833
sub eax, ecx
mov byte [esp + 0x84], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e834
shl ecx, 1
add eax, 0x5d15e834
sub eax, ecx
mov byte [esp + 0x85], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e835
shl ecx, 1
add eax, 0x5d15e835
sub eax, ecx
mov byte [esp + 0x86], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x2f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e836
shl ecx, 1
add eax, 0x5d15e836
sub eax, ecx
mov byte [esp + 0x87], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x30]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e837
shl ecx, 1
add eax, 0x5d15e837
sub eax, ecx
mov byte [esp + 0x88], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x31]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e838
shl ecx, 1
add eax, 0x5d15e838
sub eax, ecx
mov byte [esp + 0x89], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x32]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e839
shl ecx, 1
add eax, 0x5d15e839
sub eax, ecx
mov byte [esp + 0x8a], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x33]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83a
shl ecx, 1
add eax, 0x5d15e83a
sub eax, ecx
mov byte [esp + 0x8b], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x34]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83b
shl ecx, 1
add eax, 0x5d15e83b
sub eax, ecx
mov byte [esp + 0x8c], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x35]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83c
shl ecx, 1
add eax, 0x5d15e83c
sub eax, ecx
mov byte [esp + 0x8d], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x36]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83d
shl ecx, 1
add eax, 0x5d15e83d
sub eax, ecx
mov byte [esp + 0x8e], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x37]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83e
shl ecx, 1
add eax, 0x5d15e83e
sub eax, ecx
mov byte [esp + 0x8f], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x38]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e83f
shl ecx, 1
add eax, 0x5d15e83f
sub eax, ecx
mov byte [esp + 0x90], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x39]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e840
shl ecx, 1
add eax, 0x5d15e840
sub eax, ecx
mov byte [esp + 0x91], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e841
shl ecx, 1
add eax, 0x5d15e841
sub eax, ecx
mov byte [esp + 0x92], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e842
shl ecx, 1
add eax, 0x5d15e842
sub eax, ecx
mov byte [esp + 0x93], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e843
shl ecx, 1
add eax, 0x5d15e843
sub eax, ecx
mov byte [esp + 0x94], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e844
shl ecx, 1
add eax, 0x5d15e844
sub eax, ecx
mov byte [esp + 0x95], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e845
shl ecx, 1
add eax, 0x5d15e845
sub eax, ecx
mov byte [esp + 0x96], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x3f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e846
shl ecx, 1
add eax, 0x5d15e846
sub eax, ecx
mov byte [esp + 0x97], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x40]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e847
shl ecx, 1
add eax, 0x5d15e847
sub eax, ecx
mov byte [esp + 0x98], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x41]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e848
shl ecx, 1
add eax, 0x5d15e848
sub eax, ecx
mov byte [esp + 0x99], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x42]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e849
shl ecx, 1
add eax, 0x5d15e849
sub eax, ecx
mov byte [esp + 0x9a], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x43]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84a
shl ecx, 1
add eax, 0x5d15e84a
sub eax, ecx
mov byte [esp + 0x9b], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x44]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84b
shl ecx, 1
add eax, 0x5d15e84b
sub eax, ecx
mov byte [esp + 0x9c], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x45]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84c
shl ecx, 1
add eax, 0x5d15e84c
sub eax, ecx
mov byte [esp + 0x9d], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x46]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84d
shl ecx, 1
add eax, 0x5d15e84d
sub eax, ecx
mov byte [esp + 0x9e], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x47]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84e
shl ecx, 1
add eax, 0x5d15e84e
sub eax, ecx
mov byte [esp + 0x9f], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x48]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e84f
shl ecx, 1
add eax, 0x5d15e84f
sub eax, ecx
mov byte [esp + 0xa0], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x49]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e850
shl ecx, 1
add eax, 0x5d15e850
sub eax, ecx
mov byte [esp + 0xa1], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e851
shl ecx, 1
add eax, 0x5d15e851
sub eax, ecx
mov byte [esp + 0xa2], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e852
shl ecx, 1
add eax, 0x5d15e852
sub eax, ecx
mov byte [esp + 0xa3], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e853
shl ecx, 1
add eax, 0x5d15e853
sub eax, ecx
mov byte [esp + 0xa4], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e854
shl ecx, 1
add eax, 0x5d15e854
sub eax, ecx
mov byte [esp + 0xa5], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e855
shl ecx, 1
add eax, 0x5d15e855
sub eax, ecx
mov byte [esp + 0xa6], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e856
shl ecx, 1
add eax, 0x5d15e856
sub eax, ecx
mov byte [esp + 0xa7], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x50]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e857
shl ecx, 1
add eax, 0x5d15e857
sub eax, ecx
mov byte [esp + 0xa8], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x51]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e858
shl ecx, 1
add eax, 0x5d15e858
sub eax, ecx
mov byte [esp + 0xa9], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x52]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e859
shl ecx, 1
add eax, 0x5d15e859
sub eax, ecx
mov byte [esp + 0xaa], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x53]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85a
shl ecx, 1
add eax, 0x5d15e85a
sub eax, ecx
mov byte [esp + 0xab], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x54]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85b
shl ecx, 1
add eax, 0x5d15e85b
sub eax, ecx
mov byte [esp + 0xac], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x55]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85c
shl ecx, 1
add eax, 0x5d15e85c
sub eax, ecx
mov byte [esp + 0xad], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x56]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85d
shl ecx, 1
add eax, 0x5d15e85d
sub eax, ecx
mov byte [esp + 0xae], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x57]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85e
shl ecx, 1
add eax, 0x5d15e85e
sub eax, ecx
mov byte [esp + 0xaf], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x58]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e85f
shl ecx, 1
add eax, 0x5d15e85f
sub eax, ecx
mov byte [esp + 0xb0], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x59]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e860
shl ecx, 1
add eax, 0x5d15e860
sub eax, ecx
mov byte [esp + 0xb1], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e861
shl ecx, 1
add eax, 0x5d15e861
sub eax, ecx
mov byte [esp + 0xb2], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e862
shl ecx, 1
add eax, 0x5d15e862
sub eax, ecx
mov byte [esp + 0xb3], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e863
shl ecx, 1
add eax, 0x5d15e863
sub eax, ecx
mov byte [esp + 0xb4], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e864
shl ecx, 1
add eax, 0x5d15e864
sub eax, ecx
mov byte [esp + 0xb5], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e865
shl ecx, 1
add eax, 0x5d15e865
sub eax, ecx
mov byte [esp + 0xb6], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e866
shl ecx, 1
add eax, 0x5d15e866
sub eax, ecx
mov byte [esp + 0xb7], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x60]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e867
shl ecx, 1
add eax, 0x5d15e867
sub eax, ecx
mov byte [esp + 0xb8], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x61]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e868
shl ecx, 1
add eax, 0x5d15e868
sub eax, ecx
mov byte [esp + 0xb9], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x62]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e869
shl ecx, 1
add eax, 0x5d15e869
sub eax, ecx
mov byte [esp + 0xba], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x63]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86a
shl ecx, 1
add eax, 0x5d15e86a
sub eax, ecx
mov byte [esp + 0xbb], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x64]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86b
shl ecx, 1
add eax, 0x5d15e86b
sub eax, ecx
mov byte [esp + 0xbc], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x65]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86c
shl ecx, 1
add eax, 0x5d15e86c
sub eax, ecx
mov byte [esp + 0xbd], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x66]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86d
shl ecx, 1
add eax, 0x5d15e86d
sub eax, ecx
mov byte [esp + 0xbe], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x67]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86e
shl ecx, 1
add eax, 0x5d15e86e
sub eax, ecx
mov byte [esp + 0xbf], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x68]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e86f
shl ecx, 1
add eax, 0x5d15e86f
sub eax, ecx
mov byte [esp + 0xc0], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x69]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e870
shl ecx, 1
add eax, 0x5d15e870
sub eax, ecx
mov byte [esp + 0xc1], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6a]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e871
shl ecx, 1
add eax, 0x5d15e871
sub eax, ecx
mov byte [esp + 0xc2], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6b]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e872
shl ecx, 1
add eax, 0x5d15e872
sub eax, ecx
mov byte [esp + 0xc3], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6c]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e873
shl ecx, 1
add eax, 0x5d15e873
sub eax, ecx
mov byte [esp + 0xc4], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6d]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e874
shl ecx, 1
add eax, 0x5d15e874
sub eax, ecx
mov byte [esp + 0xc5], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6e]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e875
shl ecx, 1
add eax, 0x5d15e875
sub eax, ecx
mov byte [esp + 0xc6], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x6f]
add eax, 0x8b995831
mov ecx, eax
and ecx, 0x5d15e876
shl ecx, 1
add eax, 0x5d15e876
sub eax, ecx
mov byte [esp + 0xc7], al
mov eax, 0x70
mov byte [esp + eax + 0x58], 0
add eax, 1
cmp eax, 0x73
jne 0x437c90
xor esi, esi
cmp esi, 0x73
jae 0x437df4
call fcn.00409740
call fcn.00409740
call fcn.00409740
call fcn.00409740
movzx edi, byte [esp + esi + 0x58]
mov dword [esp + 0xf8], edi
call fcn.00409740
call fcn.00409740
mov eax, esi
add eax, 0x95395b98
mov ecx, eax
and ecx, 0xdd15e807
xor eax, 0x5d15e807
lea ebx, [eax + ecx*2]
lea edx, [eax + ecx*2 + 0x6ac6a468]
mov ecx, edi
not ecx
mov eax, edx
and eax, ecx
mov ecx, eax
and ecx, 0xfffffffd
mov dword [esp + 0x10c], esi
mov esi, eax
and esi, 2
mov edi, esi
xor edi, 2
imul edi, ecx
mov ecx, eax
or ecx, 2
imul ecx, esi
add ecx, edi
neg eax
mov dword [esp + 0xfc], eax
mov esi, ecx
and esi, eax
mov dword [esp + 0x100], esi
mov esi, 0x95395b97
sub esi, ebx
mov edi, esi
and edi, 0x2962d272
mov eax, edx
and eax, 0xd69d2d8d
or edi, eax
xor edi, 0xd69d2d8d
and esi, 0x70896d3f
and edx, 0xf7692c0
or esi, edx
add esi, esi
xor esi, 0xe112da7f
sub ebx, esi
mov eax, ebx
add eax, 0x6ac6a468
and eax, edi
mov edx, eax
not edx
lea esi, [edi + ebx + 0x6ac6a468]
mov edi, esi
and edi, 1
xor esi, 1
lea edi, [esi + edi*2]
mov esi, edi
add esi, edx
mov edx, dword [esp + 0xf8]
mov ebx, edx
add ebx, ebx
not ebx
add ebx, edx
sub eax, edi
and eax, 0xa8695a6a
and esi, 0x5796a595
or eax, esi
add esi, esi
sub eax, esi
add eax, 0x5796a595
mov edx, eax
not edx
mov esi, ebx
and esi, edx
mov edx, ebx
xor edx, eax
add ebx, edx
or ecx, dword [esp + 0xfc]
add ecx, dword [esp + 0x100]
not ebx
add esi, ebx
or ecx, esi
mov esi, dword [esp + 0x10c]
mov dword [esp + 0x124], ecx
mov eax, dword [esp + 0x124]
add al, 0xcf
mov byte [esp + esi + 0x58], al
add esi, 1
jmp 0x437c9f
lea eax, [esp + 0x16c]
lea edx, [esp + 0x58]
mov ecx, 0x1c
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
add eax, 0x70
lea edx, [esp + 0x58]
add edx, 0x70
mov edi, eax
xor ecx, ecx
mov esi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
xor ecx, ecx
cmp ecx, 0
je 0x437e41
add ecx, 0xffffffff
mov esi, edx
add esi, 1
mov dl, byte [edx]
mov edi, eax
add edi, 1
mov byte [eax], dl
mov edx, esi
mov eax, edi
jmp 0x437e25
mov eax, dword [0x44d510]
jmp 0x437e48
lea ecx, [esp + 0x16c]
xor edx, edx
lea edx, [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x37
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call eax
sub esp, 0x18
mov eax, dword [esp + 0x38]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x437e9b
mov ecx, eax
mov dword [esp], ecx
call fcn.00408d90
mov dword [esp + 0x34], eax
mov eax, dword [0x44d510]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
jmp 0x437eb6
lea esi, [esp + 0x16c]
xor edi, edi
lea edi, [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], 0x37
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call eax
sub esp, 0x18
mov byte [esp + 0x22], 0
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x110]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00440950
jmp 0x437f05
cmp eax, 0
setge al
test al, 1
jne 0x437f11
jmp 0x437f36
mov eax, dword [esp + 0x110]
mov ecx, eax
xor ecx, 0x80
xor ecx, 0xffffffff
or eax, 0x80
and eax, ecx
cmp eax, 0
je 0x437f36
mov byte [esp + 0x22], 1
jmp 0x437f36
mov eax, dword [esp + 0x34]
cmp eax, 0
je 0x437f49
mov dword [esp], eax
call fcn.00408da0
jmp 0x437f49
mov al, byte [esp + 0x22]
and al, 1
mov byte [esp + 0x23], al
mov dword [esp + 0x1c], 1
mov al, byte [esp + 0x23]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret