Function at 0x407760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
inc word [0x458d4e]
mov ax, word [0x458d4e]
movzx ecx, word [0x4508ca]
cwde
imul eax, eax, 0x9cd5bb8
sub ecx, eax
sub ecx, 0x16a82c23
mov word [0x4508ca], cx
mov edx, dword [0x43d8c4]
dec dword [0x43d8c4]
add edx, 0x55f08ab
and edx, 0x598324e6
sub esp, 0x58
cmp edx, 0xfe65ff04
jle 0x4077ba
mov dword [0x437878], 0x513a7816
mov eax, dword [0x44714c]
movzx ecx, word [0x457006]
shl eax, 6
add eax, 0x2d161854
imul ecx, eax
push ebx
mov ebx, dword [ebp + 0x14]
push 0
push ebx
mov word [0x457006], cx
call fcn.0041a570
add esp, 8
test eax, eax
jne 0x4077f5
mov eax, 0xfffffff4
pop ebx
mov esp, ebp
pop ebp
ret
or dword [0x44de74], 0x58244a84
push esi
push edi
push 0
lea edx, [ebp - 0x58]
push edx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x28]
push eax
call fcn.0041e9a0
movzx ecx, word [0x458d82]
mov edi, dword [ebp + 0x10]
and ecx, 0xfc48654d
push ebx
push edi
mov word [0x458d82], cx
call fcn.0042f360
add esp, 0x20
test eax, eax
jge 0x4078f0
mov eax, dword [ebp + 8]
or dword [0x4413d8], 0xe74c9164
test eax, eax
je 0x40786b
push 0
push eax
call fcn.00429950
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov edx, dword [0x436fe4]
inc dword [0x436fe4]
add edx, 0x7f06bc4d
cmp edx, 0x608ac
je 0x4078a2
mov eax, dword [0x4450d0]
movzx ecx, word [0x455bcc]
add eax, 0xfae30adf
imul ecx, eax
mov word [0x455bcc], cx
jmp 0x4078ba
mov edx, dword [0x43bbd4]
cmp edx, 0x7de7ef7b
je 0x4078ba
add dword [0x438868], 0x219170a1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4078d5
push edi
push eax
call fcn.0040ae20
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
movzx eax, word [0x45282e]
pop edi
xor eax, 0xc43a4a45
pop esi
mov word [0x45282e], ax
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
add dword [0x44b358], 0xf668102c
lea ecx, [ebp - 0x28]
push edi
push ecx
call fcn.0040ae20
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov eax, dword [0x44a714]
mov edx, dword [0x447864]
dec dword [0x44a714]
add eax, 0xf9e07219
cmp eax, edx
jne 0x407943
mov eax, dword [0x43cf78]
sar eax, 1
cmp eax, 0x6db2cd9b
jg 0x407943
mov dword [0x446d04], 0x528e7df6
lea ecx, [ebp - 0x34]
push ebx
push ecx
call fcn.0040ae20
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov eax, dword [0x441bb8]
xor eax, 0x180c030
sub dword [0x443c80], eax
mov eax, 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], eax
and dword [0x43db0c], 0x2368174c
mov edx, dword [edi + 4]
add edx, 2
push edx
lea eax, [ebp - 0x4c]
push eax
call fcn.0041ed80
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov ecx, dword [0x446ce4]
imul ecx, ecx, 0xb924a9a3
push eax
lea edx, [ebp - 0x4c]
push edx
mov dword [0x446ce4], ecx
call fcn.00429950
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov eax, dword [0x439ccc]
and eax, 0xfffffffe
or eax, 0x2a7bc36e
cmp eax, 0xbfeffff2
jg 0x407a04
mov eax, dword [0x44be70]
lea ecx, [eax*4]
mov eax, dword [0x44d120]
and eax, ecx
movzx ecx, word [0x454186]
or eax, 0xe76d317b
imul ecx, eax
mov word [0x454186], cx
jmp 0x407a16
mov edx, dword [0x44d294]
imul edx, edx, 0x101d28f9
mov dword [0x44d294], edx
lea eax, [ebp - 0x40]
push 2
push eax
call fcn.0041ed80
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov cx, word [0x451380]
movsx eax, cx
or dword [0x442bec], eax
lea edx, [ebp - 0x58]
push 3
push edx
call fcn.0041ed80
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov eax, dword [0x43f7a0]
imul eax, eax, 0x52519878
lea ecx, [ebp - 0x34]
push ecx
mov dword [0x43f7a0], eax
call fcn.0041a660
add esp, 4
and eax, 0x8000001f
jns 0x407a7e
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
mov dword [0x443430], 0x12200100
jge 0x407b1b
mov dx, word [0x458506]
movsx ecx, dx
mov edx, dword [0x43a6cc]
xor ecx, 0xcdc3d05a
cmp edx, ecx
je 0x407abb
mov cx, word [0x454ea8]
movsx ecx, cx
add dword [0x44d04c], ecx
mov edi, 0x1f
sub edi, eax
lea edx, [ebp - 0x28]
push edi
push edx
mov dword [ebp - 0x1c], edi
mov dword [0x43ce08], 0x6dc67e33
call fcn.004284d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
movzx eax, word [0x4525fe]
lea ecx, [ebp - 0x34]
sub eax, 0x365c4bed
push edi
push ecx
mov word [0x4525fe], ax
call fcn.004284d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
and dword [0x442948], 0x4460897e
jmp 0x407b22
mov dword [ebp - 0x1c], 0
add dword [0x449794], 0x709bd3f4
mov eax, dword [0x443c88]
movzx edx, word [0x44fd66]
mov edi, dword [ebp - 0x24]
and eax, 0x61674a54
add edx, eax
mov eax, dword [ebp - 0x30]
dec eax
dec edi
mov dword [ebp - 0x18], edi
sub edi, eax
mov ebx, edi
mov dword [ebp - 0x10], eax
shl ebx, 5
lea eax, [ebp - 0x34]
push ebx
mov word [0x44fd66], dx
add dword [0x44c4f0], 0x18c96f5f
push eax
call fcn.004284d0
movzx ecx, word [0x459346]
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x28]
add ecx, 0x7ebcc300
push eax
mov word [0x459346], cx
call fcn.0041d670
add esp, 0x10
test eax, eax
jl 0x407c17
jmp 0x407ba0
inc word [0x452d96]
movzx ecx, word [0x452d96]
movsx eax, cx
xor eax, 0xa918009d
or dword [0x445924], eax
mov eax, dword [ebp - 0x44]
inc dword [eax + edi*4]
movzx edx, word [0x4574e8]
imul edx, edx, 0x4060c856
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x28]
mov word [0x4574e8], dx
push ecx
mov edx, ecx
push edx
call fcn.00401e20
mov eax, dword [0x43f2e4]
movzx ecx, word [0x455172]
sar eax, 3
or eax, 0x48c563dd
and ecx, eax
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x28]
push eax
mov word [0x455172], cx
call fcn.0041d670
add esp, 0x14
test eax, eax
jge 0x407ba0
inc dword [0x444b74]
mov eax, dword [0x44b950]
mov ecx, dword [0x444b74]
and eax, 0xb32c7
shl eax, 8
or ecx, 0x1532ea13
cmp ecx, eax
jne 0x407c4e
movzx edx, word [0x459554]
add edx, 0x329ae281
mov word [0x459554], dx
lea eax, [ebp - 0x34]
push ebx
push eax
call fcn.0042ed50
mov eax, dword [0x449724]
mov ecx, dword [0x43cdb0]
shl eax, 6
add eax, 0x35a9474f
xor ecx, 0xc6ca3eaa
add esp, 8
cmp eax, ecx
jle 0x407cb8
mov edx, dword [0x43e588]
add edx, 0x598f8ba3
or edx, 0x9d3ddc
cmp edx, 0x44cd7c8
jle 0x407ccb
dec dword [0x44ac64]
inc dword [0x44da54]
mov eax, dword [0x44da54]
lea ecx, [eax + 0x1f7e29fc]
mov eax, dword [0x44ac64]
and eax, ecx
add dword [0x4443cc], eax
jmp 0x407ccb
movzx eax, word [0x4572b6]
imul eax, eax, 0x9e4bffe5
mov word [0x4572b6], ax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
jle 0x408558
add edi, edi
add edi, edi
add ebx, 0xffffffe0
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x18], ebx
jmp 0x407cf0
movzx ecx, word [0x4522a4]
mov edx, dword [ebp - 0x20]
imul ecx, ecx, 0x1fa1370
mov eax, dword [ebp - 8]
mov word [0x4522a4], cx
mov ecx, dword [ebp - 0x2c]
lea ebx, [edx + eax*4]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx]
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x14], ebx
cmp eax, dword [ecx]
jb 0x407d2f
mov ecx, dword [ebp - 0x44]
mov dword [edi + ecx - 4], 0xffffffff
jmp 0x4081bb
mov edx, dword [0x44e0d4]
sar edx, 9
add edx, 0x697a0ac6
and edx, 0xbe5e878f
cmp edx, 0xd793c0bf
jge 0x407d5f
mov edx, dword [0x438a14]
mov eax, 0x9b40fccf
sub eax, edx
add dword [0x43bbe0], eax
mov ax, word [0x45571e]
movsx edx, ax
mov eax, dword [0x43ffcc]
and eax, edx
sub dword [0x43d88c], eax
or dword [0x43f808], 0xafbfaf77
mov esi, dword [ecx]
mov ecx, dword [0x44cbb0]
mov eax, dword [0x43d3d0]
imul ecx, ecx, 0x1bf51d26
sar eax, 8
sub eax, ecx
mov cx, word [0x452960]
inc dword [0x44cbb0]
movsx edx, cx
add edx, 0x54b88725
cmp eax, edx
jle 0x407dbb
mov dword [0x44bb18], 0x5681ffcc
mov ecx, 0xffffffff
add dword [0x44898c], ecx
mov eax, dword [0x44898c]
imul eax, eax, 0xdd29c6bb
xor dword [0x4420c4], eax
mov eax, dword [0x44b0b8]
imul eax, eax, 0x5f2ab152
mov edi, esi
or eax, 0x599b6334
shr edi, 0x10
cmp eax, 0x32003504
jle 0x407e37
movzx edx, word [0x457fc6]
movsx eax, dx
mov edx, dword [0x444854]
sub eax, edx
movzx edx, word [0x454400]
add dword [0x444854], ecx
movsx edx, dx
xor edx, eax
cmp edx, 0x8110009
jge 0x407e6f
mov eax, dword [0x445e10]
add eax, 0x783ccfb7
and dword [0x440b5c], eax
add dword [0x445e10], ecx
jmp 0x407e6f
mov ax, word [0x456b0e]
mov ecx, dword [0x43a09c]
mov edx, dword [0x445c70]
cwde
imul eax, eax, 0xefd9659e
xor ecx, eax
shl edx, 9
cmp edx, ecx
je 0x407e65
mov dword [0x441654], 0x20f0aa8d
jmp 0x407e6f
add dword [0x443c9c], 0xc162e133
mov eax, dword [ebx]
xor edx, edx
div edi
mov dword [0x44de94], 0x434c70fc
mov ecx, dword [ebx]
mov dword [0x43c6e8], 0x88000a0
mov edx, eax
imul edx, edi
sub ecx, edx
mov dx, word [0x4584a0]
mov ebx, dword [0x44af4c]
movsx edx, dx
add ebx, edx
shl ecx, 0x10
cmp ebx, 0xc8c294cb
mov dword [ebp - 4], eax
jle 0x407ed1
mov edx, dword [0x44c334]
mov ebx, dword [0x437aec]
shl edx, 5
add ebx, ebx
sub ebx, edx
lea edx, [ebx - 0x704ef937]
xor dword [0x43f4a4], edx
mov edx, dword [ebp - 0x14]
movzx edx, word [edx - 2]
or ecx, edx
mov dx, word [0x45077a]
movsx edx, dx
or dword [0x4474d4], edx
inc word [0x45077a]
movzx ebx, si
mov edx, eax
imul edx, ebx
mov ebx, dword [0x44ddc8]
or ebx, 0x5210d0b1
cmp ebx, 0x83197166
je 0x407f21
movzx ebx, word [0x44fdd0]
sub ebx, 0x4a1b1b2d
mov word [0x44fdd0], bx
cmp ecx, edx
jae 0x407f7e
mov bx, word [0x455b06]
movsx ebx, bx
not ebx
sub ebx, 0x3b9b1eb2
mov dword [0x43ef44], ebx
mov ebx, dword [0x4404dc]
imul ebx, ebx, 0x74e2b880
dec eax
add ecx, esi
mov dword [ebp - 4], eax
mov dword [0x4404dc], ebx
cmp ecx, esi
jb 0x407f6e
lea esp, [esp]
cmp ecx, edx
jae 0x407f6b
add ecx, esi
dec eax
cmp ecx, esi
jae 0x407f60
mov dword [ebp - 4], eax
mov eax, dword [0x43ada8]
or eax, 0x1a7346cc
sub dword [0x4436bc], eax
mov eax, dword [0x440f98]
imul eax, eax, 0x82383ab2
sub ecx, edx
mov dword [0x440f98], eax
add dword [0x4410b4], 0x49a89485
xor edx, edx
mov eax, ecx
div edi
mov edx, dword [0x4451d8]
mov ebx, dword [0x43d3f8]
and edx, ebx
mov ebx, 1
add dword [0x43d3f8], ebx
and edx, 0xee83093a
cmp edx, 0xa44edd7c
jne 0x408000
dec word [0x455fd0]
mov dx, word [0x455fd0]
movsx edx, dx
cmp edx, 0x92c23721
jle 0x407fec
xor dword [0x43ffa0], 0xc2dfd342
jmp 0x408000
mov edx, dword [0x437b68]
not edx
and edx, 0x61dcaea8
xor dword [0x44d1e8], edx
dec word [0x44f8e2]
movzx edx, word [0x44f8e2]
movsx edx, dx
add edx, 0x41117065
xor edx, 0x37405171
or dword [0x4454cc], edx
movzx edx, word [0x452eb4]
and edx, 0xdcb5bae2
mov word [0x452eb4], dx
mov edx, eax
imul edx, edi
sub ecx, edx
mov edx, dword [ebp - 0x14]
movzx edx, word [edx - 4]
add dword [0x440230], 0x15ab1085
shl ecx, 0x10
or ecx, edx
movzx edi, si
mov edx, eax
imul edx, edi
mov edi, dword [0x43f4c4]
imul edi, edi, 0xe695a617
mov dword [0x43f4c4], edi
cmp ecx, edx
jae 0x408137
add dword [0x443520], ebx
mov di, word [0x452986]
mov ebx, dword [0x443520]
movsx edi, di
add edi, 0x477e8779
or ebx, edi
cmp ebx, 0x2f9f39a0
jne 0x4080bf
mov edi, dword [0x447fe4]
mov bx, word [0x45a5e6]
and edi, 0x9b6478
movsx ebx, bx
shl edi, 6
or ebx, edi
and dword [0x4406b8], ebx
jmp 0x4080c9
add dword [0x449f84], 0xc2e2030
add dword [0x43b2e8], 0x7246cc1b
add ecx, esi
dec eax
cmp ecx, esi
jb 0x4080eb
lea ebx, [ebx]
cmp ecx, edx
jae 0x4080eb
add ecx, esi
dec eax
cmp ecx, esi
jae 0x4080e0
mov ecx, dword [0x44da48]
mov edx, dword [0x4453dc]
imul ecx, ecx, 0x21c3775
inc dword [0x4453dc]
mov edi, dword [ebp - 0xc]
and ecx, 0xdf7b464e
xor edx, 0x3c42447f
cmp edx, ecx
jl 0x40813a
mov ecx, dword [0x444128]
mov edx, dword [0x448a70]
lea ecx, [edx + ecx + 0x29db7acc]
mov dword [0x448a70], ecx
dec dword [0x444128]
jmp 0x40813a
mov edi, dword [ebp - 0xc]
mov cx, word [0x45549a]
movzx esi, word [0x454ce6]
mov edx, dword [ebp - 4]
movsx ecx, cx
and ecx, 0xbc8cf5b5
add esi, ecx
mov word [0x454ce6], si
dec dword [0x449168]
mov ecx, dword [0x449168]
mov esi, dword [0x44aac0]
imul ecx, ecx, 0xd818dac1
and esi, ecx
cmp esi, 0x4829000
jge 0x40818b
and dword [0x43d658], 0xf35575f9
jmp 0x40819d
mov ecx, dword [0x43f300]
or ecx, 0xfc22d0e7
add dword [0x449e00], ecx
shl edx, 0x10
or edx, eax
mov eax, dword [ebp - 0x44]
mov dword [edi + eax - 4], edx
mov eax, dword [0x43b210]
not eax
add eax, 0x55e37821
and dword [0x4484d8], eax
mov ecx, dword [0x448ed8]
imul ecx, ecx, 0x73f0da24
cmp ecx, 0xafbfb5fe
jle 0x4081f3
mov edx, dword [0x43e8a0]
and edx, 0xfa5ffd73
or edx, 0xda1efd23
cmp edx, 0x66ea9554
jl 0x4081f3
or dword [0x43dbb4], 0x1ec901ec
mov eax, dword [ebp - 0x44]
inc dword [edi + eax - 4]
xor dword [0x437818], 0x9c8776dc
jmp 0x408210
add dword [0x43e2dc], 0x1bfd0665
mov eax, dword [ebp - 0x44]
dec dword [edi + eax - 4]
mov eax, dword [0x4405a0]
imul eax, eax, 0xf243cf83
lea ecx, [ebp - 0x40]
push 0
push ecx
mov dword [0x4405a0], eax
call fcn.00429950
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov eax, dword [0x43fcdc]
mov edx, dword [0x43a5a4]
sar eax, 0xa
or eax, 0x40082568
shl edx, 4
cmp eax, edx
jne 0x408281
mov ax, word [0x456e06]
movsx ecx, ax
mov eax, dword [0x437958]
sar ecx, 2
and eax, ecx
xor eax, 0xdd533b7d
add dword [0x44b144], eax
mov ecx, dword [ebp - 0x10]
cmp ecx, 1
jge 0x40828d
xor eax, eax
jmp 0x408294
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [ebp - 0x38]
mov dword [edx], eax
add dword [0x43d330], 0x724b518b
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0x38]
mov dword [edx + 4], ecx
movzx eax, word [0x4592e8]
mov ecx, dword [ebp - 0x44]
and eax, 0xc487e33d
mov word [0x4592e8], ax
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [ebp - 0x40]
push eax
mov ecx, eax
push ecx
call fcn.0042d680
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408721
mov dx, word [0x4586d4]
movsx eax, dx
not eax
imul eax, eax, 0x2d019ab6
lea ecx, [ebp - 0x58]
push esi
push ecx
mov dword [0x44b6b4], eax
call fcn.00429950
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov edx, dword [0x43f984]
mov ecx, dword [ebp - 8]
imul edx, edx, 0x79d2bf7f
cmp ecx, 2
mov dword [0x43f984], edx
jl 0x408331
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4 - 8]
mov edx, dword [ebp - 0x50]
mov dword [edx], eax
mov eax, dword [0x4390dc]
mov edx, dword [0x437a18]
shl eax, 6
or edx, eax
or edx, 0x2f6ea799
cmp ecx, 1
mov dword [0x437a18], edx
jge 0x40835b
xor eax, eax
jmp 0x408362
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [ebp - 0x50]
mov dword [edx + 4], eax
add dword [0x4381b8], 0xe9090252
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0x50]
mov dword [edx + 8], ecx
mov eax, dword [0x443aec]
imul eax, eax, 0xc8588614
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x40]
push edx
mov dword [0x443aec], eax
call fcn.0041d670
add esp, 8
test eax, eax
jg 0x408210
mov eax, dword [0x44d8c0]
mov ecx, dword [0x446bd0]
imul eax, ecx
cmp eax, 0x8a0c4f86
je 0x4083e0
mov dx, word [0x45a78a]
movzx ecx, word [0x45a8e8]
movsx eax, dx
sub eax, ecx
sub eax, 0x63069be4
mov word [0x45a78a], ax
inc word [0x45a8e8]
mov edx, dword [ebp - 0x44]
mov eax, dword [edi + edx - 4]
push eax
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x40]
push edx
call fcn.0042d680
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408721
mov eax, dword [0x44d7e8]
mov ecx, dword [0x44c32c]
mov ebx, dword [ebp - 0x18]
imul eax, ecx
imul eax, eax, 0x3524ec1
lea edx, [ebp - 0x40]
push ebx
push edx
mov dword [0x44d7e8], eax
call fcn.004284d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
lea ecx, [ebp - 0x40]
mov eax, 0xffffd244
push ecx
lea edx, [ebp - 0x28]
mov word [0x4522f0], ax
push edx
mov eax, edx
push eax
call fcn.00401e20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408721
and dword [0x4384b4], 0xa6993458
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.0041a570
add esp, 8
test eax, eax
jge 0x408532
mov dx, word [0x457126]
mov ecx, dword [0x4437cc]
movsx eax, dx
imul ecx, eax
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x40]
push eax
mov dword [0x4437cc], ecx
call fcn.0040ae20
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
mov ecx, dword [0x437a80]
imul ecx, ecx, 0xd36b6621
lea edx, [ebp - 0x40]
push ebx
push edx
mov dword [0x437a80], ecx
call fcn.004284d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x408721
inc word [0x45672c]
mov ax, word [0x45672c]
mov ecx, dword [0x44ca1c]
cwde
add eax, 0x528d51a5
imul ecx, eax
lea edx, [ebp - 0x40]
push edx
lea eax, [ebp - 0x28]
mov dword [0x44ca1c], ecx
push eax
mov ecx, eax
push ecx
call fcn.004119e0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408721
add dword [0x43c088], 0xa1e250fa
mov eax, dword [ebp - 0x44]
dec dword [edi + eax - 4]
or dword [0x4435bc], 0xb87d7f5f
mov eax, dword [ebp - 8]
add dword [0x44268c], 0x21c11c4d
dec eax
sub ebx, 0x20
sub edi, 4
cmp eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], edi
jg 0x407cf0
mov edi, dword [ebp + 8]
add dword [0x43f6b4], 0x903e80a5
test edi, edi
je 0x40861a
dec dword [0x438f50]
mov edx, dword [0x438f50]
sub edx, 0x6236bb5
cmp edx, 0x73d7b98c
jge 0x408593
and dword [0x43dc9c], 0xb48830a
jmp 0x4085cb
inc word [0x4551c4]
mov ax, word [0x4551c4]
movsx ecx, ax
cmp ecx, 0x516ae522
jge 0x4085c5
mov eax, dword [0x44c2d8]
add eax, 0x27e66ce
shl eax, 5
or eax, 0x1d8d1fcf
and dword [0x44448c], eax
jmp 0x4085cb
mov edx, dword [0x44c0a0]
lea eax, [ebp - 0x4c]
push eax
push edi
call fcn.0040ae20
mov eax, dword [0x43b0c0]
lea ecx, [eax - 0x7aac5a3e]
mov eax, dword [0x44ccf8]
xor eax, ecx
sub dword [0x43acc0], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x14]
imul edx, dword [eax]
mov dword [edi], edx
mov eax, dword [0x43c484]
movzx ecx, word [0x45147e]
shl eax, 8
add eax, 0x7e098eb4
add esp, 8
or ecx, eax
mov word [0x45147e], cx
mov eax, dword [0x446640]
mov edx, dword [0x44c718]
mov edi, dword [ebp + 0xc]
add eax, eax
not edx
add eax, edx
add dword [0x43a6f8], eax
test edi, edi
je 0x408717
mov eax, dword [0x4497f0]
inc dword [0x4497f0]
add eax, 0xfc594c
or eax, 0xcaa8c4e6
cmp eax, 0x9ffacbff
jne 0x40866a
mov cx, word [0x4542ee]
movsx eax, cx
or dword [0x448480], eax
jmp 0x408674
mov dword [0x442114], 0x85a618b9
mov edx, dword [ebp - 0x1c]
push edx
lea eax, [ebp - 0x28]
push eax
call fcn.0042ed50
mov cx, word [0x458476]
movsx edx, cx
lea eax, [ebp - 0x28]
push eax
xor edx, 0xa957e448
mov dword [0x439528], edx
push edi
call fcn.0040ae20
mov eax, dword [0x445598]
mov ecx, dword [ebp + 0x10]
not eax
or eax, 0x1361b029
sub dword [0x43c284], eax
mov edx, dword [ecx]
mov dword [edi], edx
mov eax, dword [0x44c084]
sar eax, 7
and eax, 0xc6b286ca
add esp, 0x10
cmp eax, 0xe9acbdcb
jle 0x4086e9
mov ecx, dword [0x4418f8]
add ecx, dword [0x4406ec]
mov dword [0x4418f8], ecx
inc dword [0x4406ec]
push 0
push edi
call fcn.0041a570
add esp, 8
test eax, eax
jne 0x4086fe
mov dword [edi], 1
mov edx, dword [0x4419d0]
mov eax, dword [0x43a384]
sub edx, eax
mov dword [0x4419d0], edx
inc dword [0x43a384]
mov dword [0x44b798], 0x8a10501
push 0
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x40]
push edx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x28]
push edx
call fcn.00404900
mov ax, word [0x457de6]
mov edx, dword [0x445588]
movsx ecx, ax
imul ecx, ecx, 0x40edecd8
add esp, 0x18
mov eax, 0x8b2247bd
sub eax, ecx
imul edx, eax
pop edi
mov eax, esi
pop esi
mov dword [0x445588], edx
pop ebx
mov esp, ebp
pop ebp
ret