Function at 0x41717f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add dword [0x43deac], 0x6b4f76f3
sub esp, 0x770
add dword [0x43a640], 0x8d07d899
mov eax, dword [0x43b190]
mov ecx, dword [0x438534]
not eax
or ecx, eax
mov eax, dword [0x439ba8]
or eax, ecx
or eax, 0x5fa37119
mov dword [0x439ba8], eax
movzx eax, word [0x436984]
add eax, 0x5fd360b8
mov word [0x436984], ax
mov eax, dword [0x43c040]
add eax, eax
cmp eax, 0x2322af7c
jle 0x41721d
movsx eax, word [0x433b6a]
cmp eax, 0xffbbffef
jge 0x41721d
mov ecx, dword [0x43b2c8]
mov eax, dword [0x43c8d8]
sar ecx, 6
add eax, ecx
movsx ecx, word [0x435f00]
xor ecx, eax
mov eax, dword [0x43c4cc]
imul eax, ecx
mov dword [0x43c4cc], eax
inc dword [0x43c8d8]
inc word [0x435f00]
movzx eax, word [0x435d7a]
lea ecx, [ebp - 0x24]
or eax, 0x5367c6f9
mov word [0x435d7a], ax
call fcn.0041dfd5
movsx eax, word [0x436718]
add eax, eax
xor eax, 0xc9850989
cmp eax, 0x53d7be95
je 0x417258
xor dword [0x43a6c8], 0x6baf38f1
jmp 0x417282
mov ax, word [0x433e46]
mov ecx, dword [0x4396f0]
cwde
xor ecx, eax
xor ecx, 0x8aac35d5
cmp ecx, 0xfb7faa7e
je 0x417282
mov ax, word [0x436598]
inc word [0x436598]
mov dword [0x43a4e0], 0xa299bada
mov dword [0x43c020], 0xfa5fe9ea
mov eax, dword [0x439b10]
push ebx
sar eax, 4
xor ebx, ebx
sub dword [0x43bb64], eax
xor dword [0x43ccd0], 0xb7f7fed7
push esi
mov dword [0x438970], 0x1803000
push ebx
call fcn.004264b4
add eax, 0x258
pop ecx
mov ecx, edx
mov dword [ebp - 0x28], eax
adc ecx, ebx
inc word [0x43680c]
mov dword [ebp - 0x2c], ecx
mov cx, word [0x43680c]
movsx ecx, cx
or ecx, 0xb309a8f0
cmp ecx, 0x71b492fd
jge 0x41733a
mov ax, word [0x435746]
movsx ecx, ax
mov eax, dword [0x43af18]
add ecx, eax
mov eax, dword [0x43bcfc]
sub eax, 0xa7facd3
and eax, 0x7647770d
dec word [0x435746]
inc dword [0x43af18]
cmp eax, ecx
jl 0x417330
mov eax, dword [0x43dc38]
sar eax, 0xa
mov dword [0x43e214], eax
jmp 0x41733a
add dword [0x43d4c0], 0x278203b1
mov byte [ebp - 0x370], bl
mov ebx, dword [ebp + 8]
and dword [0x43dc60], 0x71af3fbe
push ebx
call fcn.00402169
pop ecx
movzx ecx, word [0x434212]
mov esi, eax
xor ecx, 0x3f7ffa63
mov word [0x434212], cx
cmp esi, 0x7f
jg 0x418172
movsx ecx, word [0x433b7a]
sar ecx, 2
add ecx, 0x7a812cb8
cmp ecx, 0x620b0b
jne 0x4173a3
mov eax, dword [0x43c0cc]
mov ecx, dword [0x43b2e8]
add eax, 0xc007bb56
or ecx, eax
and dword [0x439b20], ecx
xor edx, edx
push edi
test esi, esi
js 0x4174bd
mov edi, ebx
lea eax, [ebp - 0x170]
sub edi, eax
mov ax, word [0x434bde]
mov ecx, dword [0x43c734]
cwde
or ecx, eax
lea eax, [edi + edx]
or ecx, 0xfab83213
mov word [0x434bde], cx
inc dword [0x43c734]
mov al, byte [ebp + eax - 0x170]
mov byte [ebp + edx - 0x170], al
movzx eax, word [0x4349b2]
or eax, 0xe70f2065
cmp byte [ebp + edx - 0x170], 0x2f
mov word [0x4349b2], ax
je 0x41741b
or dword [0x43d0fc], 0x9cedf73f
inc edx
cmp edx, esi
jle 0x4173b8
jmp 0x4174bd
or dword [0x439278], 0xee7d3eef
mov ecx, dword [0x43dc00]
mov eax, dword [0x43baa8]
not ecx
sub ecx, eax
mov byte [ebp + edx - 0x170], 0
lea eax, [ecx + 0x3bfae8b]
and dword [0x4385bc], eax
cmp edx, esi
jg 0x41748c
lea edi, [ebp - 0x370]
sub edi, edx
dec dword [0x43de50]
mov eax, dword [0x43de50]
and dword [0x43b7a4], eax
mov al, byte [edx + ebx]
mov ecx, dword [0x43c168]
mov byte [edi + edx], al
mov eax, dword [0x436cc4]
sar ecx, 5
xor ecx, 0x3637fdc3
or eax, ecx
sub dword [0x437350], eax
inc edx
cmp edx, esi
jle 0x417454
mov eax, dword [0x4394b8]
and eax, 0xe4097e4b
cmp eax, 0xae401831
je 0x4174bd
mov eax, dword [0x436f40]
xor eax, 0xfff3fffe
or eax, 0x7ae3bcfe
cmp eax, 0x32fc208a
je 0x4174bd
mov eax, dword [0x43cc4c]
mov eax, dword [0x43800c]
push dword [ebp + 0xc]
add dword [0x437c38], 0xceb02760
call fcn.00402169
mov esi, eax
lea eax, [ebp - 0x370]
push eax
call fcn.00402169
add esi, eax
pop ecx
pop ecx
cmp esi, 0x1ff
ja 0x418171
mov eax, dword [0x438d00]
or eax, 0x38d597e3
dec dword [0x438d00]
cmp eax, 0x12b79715
jl 0x417545
movsx eax, word [0x435d7e]
and eax, 0xfce0e671
dec word [0x435d7e]
cmp eax, 0x86e07bad
jge 0x417567
dec dword [0x43b120]
mov ecx, 0x4d17c154
mov eax, dword [0x43b120]
sub ecx, eax
mov eax, dword [0x43a57c]
add eax, ecx
add dword [0x43e384], eax
inc dword [0x43a57c]
jmp 0x417567
mov eax, dword [0x43d4c0]
mov ecx, dword [0x43dfc8]
add eax, 0x21ddf674
shl ecx, 4
and ecx, eax
cmp ecx, 0x928294d7
je 0x417567
mov eax, dword [0x436de4]
push dword [ebp + 0xc]
lea eax, [ebp - 0x370]
push eax
call fcn.0041cbf2
imul eax, dword [0x43b9b8], 0x81681470
xor edi, edi
pop ecx
pop ecx
mov dword [ebp - 4], edi
mov dword [0x43b9b8], eax
mov eax, dword [0x43bfbc]
add eax, 0x53878035
xor eax, 0xd367a1a2
inc dword [0x43bfbc]
cmp eax, 0x47dea38d
jle 0x4175c2
dec dword [0x43d46c]
mov eax, dword [0x43d46c]
mov ecx, dword [0x43c908]
imul ecx, eax
mov dword [0x43c908], ecx
push 5
push 0x3190
call fcn.0042bf01
pop ecx
pop ecx
mov ecx, dword [0x43bb80]
mov esi, eax
mov dword [0x43d4a0], ecx
lea ecx, [ebp - 0x24]
dec dword [0x43bb80]
push esi
call fcn.0041cb92
dec dword [0x43ae84]
mov ecx, dword [0x43ae84]
xor ecx, 0x8637fa07
sub dword [0x437434], ecx
push esi
push 5
call fcn.0040f97d
mov ebx, dword [ebp + 0x10]
xor dword [0x43b1b0], 0x20440517
pop ecx
pop ecx
mov ecx, ebx
call fcn.004222e9
test eax, eax
je 0x4177d4
mov eax, dword [0x43cfc8]
xor eax, 0xfe3fd5a5
or eax, 0xf42755a1
add eax, eax
add dword [0x43a668], eax
push 0xc
push 0x16f1
call fcn.0042bf01
mov edx, dword [0x43b244]
mov edi, eax
pop ecx
pop ecx
mov ecx, dword [0x43d8f8]
xor edx, 0x5f26c222
imul ecx, edx
push edi
mov dword [0x43d8f8], ecx
lea ecx, [ebp - 0x78]
call fcn.00401f84
push 0
lea eax, [ebp - 0x78]
mov ecx, ebx
push eax
call fcn.0040a4d3
lea ecx, [ebp - 0x78]
mov esi, eax
call fcn.0041faf4
and dword [0x438968], 0xe4d470a9
push edi
push 0xc
call fcn.0040f97d
or dword [0x4381dc], 0x1254235d
pop ecx
pop ecx
test esi, esi
jne 0x4177b0
xor edi, edi
mov dword [0x43d130], 0x849a2460
and dword [0x4375ec], 0x14429627
inc edi
push 0xb
push esi
mov ecx, ebx
mov dword [ebp - 4], edi
call fcn.00404004
push eax
mov ecx, ebx
call fcn.00410686
mov eax, dword [0x438b14]
and eax, 0x62c420de
dec dword [0x438b14]
cmp eax, 0xbff710d5
jle 0x417700
or dword [0x43ba9c], 0x3af549da
push 6
push 0x23d0
call fcn.0042bf01
pop ecx
pop ecx
mov ecx, dword [0x43ba14]
mov esi, eax
imul edx, ecx, 0x16b62298
mov ecx, dword [0x4396d4]
not ecx
cmp ecx, edx
jne 0x417739
mov ecx, dword [0x438040]
shl ecx, 7
xor dword [0x43ddd8], ecx
jmp 0x417771
mov eax, dword [0x43df10]
and eax, 0x9e7d54bc
cmp eax, 0xb210fdd2
jg 0x41775c
mov eax, dword [0x43dcf4]
or eax, 0xaabf7bfb
add dword [0x43b5a0], eax
jmp 0x417771
imul eax, dword [0x43a6b4], 0x24b8a3c7
add eax, 0x8eea08f2
or dword [0x439710], eax
push esi
lea ecx, [ebp - 0x24]
call fcn.0041cb92
mov ax, word [0x433bde]
mov ecx, dword [0x4374e8]
cwde
imul ecx, eax
push esi
push 6
mov dword [0x4374e8], ecx
inc word [0x433bde]
call fcn.0040f97d
mov eax, dword [0x43a3f8]
pop ecx
shl eax, 6
pop ecx
mov dword [0x43dcf4], eax
jmp 0x4177b3
mov edi, dword [ebp - 4]
mov eax, dword [0x43e438]
mov ecx, dword [0x439acc]
sar eax, 9
add eax, 0xbdb16954
or ecx, eax
or ecx, 0x49e2a15a
mov dword [0x439acc], ecx
lea eax, [ebp - 0x370]
mov dword [0x43b7b8], 0x17d466fa
push eax
lea ecx, [ebp - 0x50]
call fcn.00403db9
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0x50]
call fcn.0040cac1
movsx eax, word [0x434b14]
sar eax, 5
xor dword [0x43a2dc], eax
push 0x32
push 0x341f
call fcn.0042bf01
pop ecx
pop ecx
imul ecx, dword [0x4399d0], 0xbe158f6f
mov esi, eax
push esi
mov dword [0x4399d0], ecx
lea ecx, [ebp - 0xf0]
call fcn.00403db9
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0xf0]
call fcn.0040cac1
movsx ecx, word [0x436702]
movzx eax, word [0x434acc]
xor ecx, 0xc304ae8a
and eax, ecx
push esi
mov word [0x434acc], ax
inc word [0x436702]
push 0x32
call fcn.0040f97d
movzx eax, word [0x43425a]
add eax, 0xa8e9e20
pop ecx
mov word [0x43425a], ax
lea eax, [ebp - 0x170]
pop ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00403db9
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0xa0]
call fcn.0040cac1
movsx ecx, word [0x435260]
mov eax, dword [0x43e4c8]
and ecx, 0x9cb4dcbc
imul eax, ecx
mov dword [0x43e4c8], eax
test edi, edi
je 0x417a54
mov eax, dword [0x43d538]
imul ecx, eax, 0x7f1a5b66
movsx eax, word [0x4338d6]
push 0x44
push 0x81a
add eax, ecx
movzx ecx, word [0x4366fa]
or ecx, eax
mov word [0x4366fa], cx
dec word [0x4338d6]
call fcn.0042bf01
or dword [0x437760], 0x1e617a5d
mov edi, eax
pop ecx
pop ecx
push edi
lea ecx, [ebp - 0xdc]
call fcn.00403db9
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0xdc]
call fcn.0040cac1
movsx ecx, word [0x43335e]
mov eax, 0x7c51731f
sar ecx, 2
sub eax, ecx
add dword [0x438d30], eax
push 3
push 0x120
call fcn.0042bf01
mov cx, word [0x43303c]
mov esi, eax
mov edx, dword [0x4392b4]
movsx ecx, cx
xor edx, ecx
xor edx, 0x637540df
push edi
mov dword [0x4392b4], edx
push 0x44
call fcn.0040f97d
or dword [0x437a6c], 0x10041501
add esp, 0x10
mov ecx, ebx
call fcn.004222e9
push eax
lea eax, [ebp - 0x770]
push esi
push eax
call fcn.0040e487
dec dword [0x43b640]
mov eax, dword [0x43b640]
add dword [0x43e07c], eax
push esi
push 3
call fcn.0040f97d
add esp, 0x14
inc dword [0x43af2c]
mov eax, dword [0x43af2c]
cmp eax, 0xfd6f553e
jne 0x417a11
mov ecx, dword [0x43c450]
mov eax, dword [0x43c6ac]
sar ecx, 4
sub ecx, eax
movzx eax, word [0x435c0a]
xor ecx, 0xeae2fd20
and eax, ecx
mov word [0x435c0a], ax
jmp 0x417a1b
add dword [0x43e744], 0x8000800
lea eax, [ebp - 0x770]
push eax
lea ecx, [ebp - 0xc8]
call fcn.00403db9
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0xc8]
call fcn.0040cac1
add dword [0x438a68], 0x3a25928b
mov edi, dword [ebp - 4]
cmp dword [0x439eec], 0xc9ebf0a
jge 0x417a6a
add dword [0x437fa8], 0xe10bf8d1
push 5
push 0x1555
call fcn.0042bf01
or dword [0x438e1c], 0xc36f6e33
mov esi, eax
pop ecx
pop ecx
push esi
lea ecx, [ebp - 0x64]
call fcn.00403db9
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x24]
call fcn.004010fa
lea ecx, [ebp - 0x64]
call fcn.0040cac1
mov eax, dword [0x43c494]
sar eax, 0xa
xor eax, 0x3b6d0562
push esi
mov word [0x435962], ax
push 5
call fcn.0040f97d
and dword [0x437614], 0x9acf8148
pop ecx
pop ecx
test edi, edi
je 0x417ad5
push ebx
lea ecx, [ebp - 0x24]
call fcn.004010fa
movzx eax, word [0x4357d8]
push 6
push 1
and eax, 0xf9feddbf
push 2
mov word [0x4357d8], ax
pop eax
push eax
call dword [0x43f0ac]
add dword [0x437bc4], 0x3d17a71f
mov esi, eax
or edi, 0xffffffff
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], edi
cmp esi, edi
jne 0x417b2e
inc dword [0x43851c]
mov eax, dword [0x43851c]
and eax, 0x26be9f17
add eax, dword [0x43a494]
mov dword [0x43a494], eax
jmp 0x418171
imul eax, dword [0x43718c], 0x28ab5c0
and eax, 0x77911adc
cmp eax, 0x7b8d4f
jne 0x417b6a
movsx eax, word [0x4358b6]
mov ecx, 0x57a4ee1
sub ecx, eax
mov eax, dword [0x43be10]
and eax, ecx
and eax, 0x32607b57
mov dword [0x43be10], eax
inc word [0x4358b6]
cmp dword [ebp + 0x14], 0
je 0x417b9b
xor dword [0x43ac10], 0x16b50f16
lea eax, [ebp + 0x14]
push 4
push eax
push 0x1006
push 0xffff
push esi
call dword [0x43f0a8]
xor dword [0x43785c], 0x2e8b95f5
mov eax, dword [0x439368]
or eax, 0xf650f7a7
mov dword [0x43c864], eax
lea eax, [ebp - 0x170]
push eax
call dword [0x43f088]
inc dword [0x43ccdc]
mov ecx, dword [0x43ccdc]
sub dword [0x439bb4], ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x418171
mov ecx, dword [0x437c30]
mov edx, 0xfdca6865
movzx eax, word [0x433d8c]
sub edx, ecx
imul eax, edx
push 2
mov word [0x433d8c], ax
mov ecx, dword [0x43c1d4]
pop eax
mov word [ebp - 0x3c], ax
movzx eax, word [0x434b54]
sar ecx, 3
and eax, ecx
mov word [0x434b54], ax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
push dword [eax]
call dword [0x43f094]
push eax
call dword [0x43f090]
mov dword [ebp - 0x38], eax
mov eax, dword [0x43bdec]
shl eax, 0xa
sub eax, 0x1978cd92
cmp eax, 0xab9aca27
je 0x417c48
and dword [0x43bef8], 0x82d0f7aa
push 0x50
call dword [0x43f08c]
mov word [ebp - 0x3a], ax
movzx eax, word [0x433b26]
and eax, 0x1eff557a
mov word [0x433b26], ax
lea eax, [ebp - 0x3c]
push 0x10
push eax
push esi
call dword [0x43f084]
cmp eax, edi
jne 0x417c8b
imul eax, dword [0x43b348], 0x3856944e
mov dword [0x43b348], eax
jmp 0x418171
mov eax, dword [0x43cde0]
sar eax, 9
cmp eax, 0x6cb9543
jle 0x417ca6
or dword [0x43afc0], 0x137e6daa
jmp 0x417cbc
mov eax, dword [0x43db30]
not eax
and eax, 0x24821804
or eax, 0x1b60a7fb
mov dword [0x43bbdc], eax
push 0
lea ecx, [ebp - 0x24]
call fcn.004222e9
push eax
lea ecx, [ebp - 0x24]
call fcn.004156a2
push eax
push esi
call dword [0x43f0a4]
mov ecx, dword [0x43a224]
mov esi, eax
add ecx, 0x5eec0923
xor ecx, 0x69b0c150
or dword [0x43d580], ecx
lea ecx, [ebp - 0x24]
call fcn.004222e9
cmp esi, eax
jae 0x417d15
movzx eax, word [0x4359a0]
imul eax, eax, 0x8da0b25
mov word [0x4359a0], ax
jmp 0x418171
mov eax, dword [0x439a8c]
sar eax, 7
cmp eax, 0x1fc65cb2
jl 0x417d3f
mov ecx, dword [0x437798]
movzx eax, word [0x434156]
and ecx, 0xf001ba4e
or eax, ecx
mov word [0x434156], ax
mov ecx, ebx
call fcn.0041b179
inc word [0x43601c]
movzx eax, word [0x43601c]
mov ecx, dword [0x43cb04]
mov esi, dword [ebp - 0xc]
imul ecx, eax
mov dword [ebp - 0x10], edi
imul eax, ecx, 0x2d13fa34
mov word [0x435f18], ax
inc dword [0x43cb04]
add dword [0x43dcc0], 0xe3122537
jmp 0x418075
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.004170c1
pop ecx
pop ecx
test eax, eax
jne 0x4180e0
add dword [0x4383f8], 0xd0601083
mov ecx, ebx
push eax
call fcn.004222e9
add eax, dword [ebp - 8]
mov ecx, ebx
push eax
call fcn.004015a5
mov eax, dword [0x43dab8]
mov ecx, ebx
and eax, dword [0x43bcac]
mov dword [0x43bcac], eax
dec dword [0x43dab8]
call fcn.0041cbc4
test eax, eax
je 0x4180e0
push dword [ebp - 8]
lea eax, [ebp - 0x770]
mov dword [0x43bfdc], 0x637ad72c
push eax
mov ecx, ebx
call fcn.0040bc58
mov eax, dword [0x43c578]
mov ecx, 0xd61ed919
sub ecx, eax
mov eax, dword [0x436eec]
add eax, ecx
or dword [0x43df7c], eax
test edi, edi
jns 0x417ff5
imul eax, dword [0x436f48], 0x788ceab7
push 5
push 0x1555
mov dword [0x436f48], eax
call fcn.0042bf01
pop ecx
pop ecx
mov esi, eax
mov dword [0x43ca90], 0xd7e1eb3f
push esi
lea ecx, [ebp - 0x8c]
call fcn.00401f84
push 0
lea eax, [ebp - 0x8c]
mov ecx, ebx
push eax
call fcn.0040a4d3
mov edi, eax
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], edi
call fcn.0041faf4
and dword [0x43df1c], 0x1f8d48c1
push esi
push 5
call fcn.0040f97d
pop ecx
pop ecx
movsx ecx, word [0x433202]
lea ecx, [ecx*4 - 0x1b44a137]
xor ecx, 0x20ec0de7
cmp ecx, 0xf7fa58bb
jge 0x417ec2
inc dword [0x43e628]
mov eax, dword [0x43e628]
add eax, 0x669304ae
cmp eax, 0x8e738767
jge 0x417ec2
mov eax, dword [0x4376b0]
xor eax, 0x98546d67
mov dword [0x43c96c], eax
test edi, edi
js 0x417fe8
mov eax, dword [0x43ccb8]
add edi, 4
imul eax, dword [0x43cc78]
push ebx
mov dword [ebp - 4], edi
mov dword [0x43cc78], eax
imul eax, dword [0x43d410], 0x2d43623c
mov dword [0x43d410], eax
call fcn.0041210f
dec dword [0x43bbc4]
mov esi, eax
mov edx, dword [0x43bbc4]
pop ecx
imul ecx, dword [0x43b060], 0xd057ff80
or edx, 0x6f265b69
mov dword [ebp - 0x10], esi
cmp edx, ecx
jg 0x417f36
movsx ecx, word [0x4332a8]
mov eax, dword [0x43b454]
shl ecx, 3
and eax, ecx
shl eax, 3
xor dword [0x43cfac], eax
test esi, esi
jns 0x417fde
add dword [0x43cdc0], 0x54f6ef4d
push 0xb
push 0x2d11
call fcn.0042bf01
add dword [0x43c4b0], 0xbc974d78
mov edi, eax
pop ecx
pop ecx
push edi
lea ecx, [ebp - 0xb4]
call fcn.00401f84
push 0
lea eax, [ebp - 0xb4]
mov ecx, ebx
push eax
call fcn.0040a4d3
lea ecx, [ebp - 0xb4]
mov esi, eax
call fcn.0041faf4
mov edx, dword [0x4387a8]
mov ecx, dword [0x437d34]
add ecx, edx
mov edx, dword [0x43994c]
add edx, ecx
push edi
mov dword [0x4387a8], edx
dec dword [0x437d34]
push 0xb
call fcn.0040f97d
or dword [0x438974], 0x761e3129
pop ecx
pop ecx
test esi, esi
jns 0x4180e0
movzx eax, word [0x4345dc]
mov edi, dword [ebp - 4]
sub eax, 0x36bfa7d2
mov word [0x4345dc], ax
and dword [0x438334], 0xdd82f86a
and dword [0x43a52c], 0x9f2b0ffc
mov esi, dword [ebp - 0xc]
cmp dword [ebp - 0x10], 0
mov eax, dword [0x439490]
mov word [0x43364c], ax
jl 0x418018
mov ecx, ebx
call fcn.004222e9
sub eax, edi
cmp eax, dword [ebp - 0x10]
jae 0x4180e0
add dword [0x437c2c], 0xbb3021a4
cmp dword [ebp + 0x14], 0x3aa6
jne 0x418055
add dword [0x43bf5c], 0xfffddc00
mov ecx, ebx
call fcn.004222e9
cmp eax, 0x500000
ja 0x4180c1
mov eax, dword [0x43b4dc]
shl eax, 3
xor eax, 0x14d5c949
mov dword [0x43997c], eax
mov eax, dword [0x43d550]
mov ecx, 0x55b2fa54
sar eax, 3
sub ecx, eax
mov eax, dword [0x43df30]
xor eax, ecx
xor eax, 0x5f179c0a
mov dword [0x43df30], eax
mov ax, word [0x435ef2]
dec ax
movzx eax, ax
mov word [0x435ef2], ax
mov ecx, dword [0x43d6f4]
cwde
push 0
sub ecx, eax
lea eax, [ebp - 0x770]
push 0x400
push eax
push esi
mov dword [0x43d6f4], ecx
call dword [0x43f09c]
or dword [0x439a30], 0x549682f5
mov dword [ebp - 8], eax
test eax, eax
jg 0x417d84
jmp 0x4180e0
inc dword [0x43d4b0]
mov eax, dword [0x43d4b0]
mov ecx, dword [0x43ae8c]
or ecx, eax
or ecx, 0x4e0b8047
mov dword [0x43ae8c], ecx
push dword [ebp - 0xc]
and dword [0x43d7bc], 0x9a109c70
call dword [0x43f080]
xor dword [0x43cfc0], 0x24043862
mov ecx, dword [ebp - 4]
test ecx, ecx
js 0x41815b
dec dword [0x43af68]
mov edx, dword [0x43af68]
mov eax, dword [0x439758]
add edx, 0x684d95f6
and edx, eax
mov eax, dword [0x43c32c]
imul eax, edx
push ecx
push 0
mov ecx, ebx
mov dword [0x43c32c], eax
call fcn.00404004
push eax
mov ecx, ebx
call fcn.00410686
dec dword [0x43b17c]
mov eax, dword [0x43b17c]
mov ecx, dword [0x43dbdc]
or ecx, eax
xor dword [0x439798], ecx
dec dword [0x43dbdc]
mov eax, dword [0x43d4b4]
add eax, dword [0x4391d4]
mov dword [0x4391d4], eax
dec dword [0x43d4b4]
pop edi
lea ecx, [ebp - 0x24]
call fcn.0040cac1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret