Function at 0x403680
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x43b648]
sub esp, 0x60
or eax, 0xb45fda19
sub dword [0x436898], eax
mov eax, dword [0x439030]
dec dword [0x439030]
add eax, 0x3058790f
cmp eax, 0x6b51848c
jle 0x4036b9
add dword [0x435c3c], 0xe36ba776
jmp 0x4036c3
or dword [0x439ce8], 0xe705d612
mov eax, dword [0x437394]
mov ecx, 0xb69c5e8d
push edi
mov edi, dword [ebp + 0x14]
sub ecx, eax
add dword [0x438218], ecx
push 0
push edi
call fcn.004275c0
add esp, 8
test eax, eax
jne 0x4036f2
mov eax, 0xfffffff4
pop edi
mov esp, ebp
pop ebp
ret
movsx eax, word [0x441236]
cmp eax, 0x22910a9f
jg 0x40370c
add dword [0x43b9f4], 0xc488dbed
jmp 0x403716
add dword [0x43c6ec], 0x1a38bd7
push 0
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0042c920
movsx eax, word [0x43fdd0]
add esp, 0x18
mov ecx, dword [0x43b518]
dec dword [0x43b518]
shl eax, 7
xor ecx, eax
xor ecx, 0x36ad58e9
cmp ecx, 0x95fda24c
jge 0x403773
imul eax, dword [0x4382c4], 0x30f9dca0
mov ecx, 0x69d57695
sub ecx, eax
xor dword [0x437098], ecx
jmp 0x403782
imul eax, dword [0x438090], 0xae09e1a2
mov dword [0x438090], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push ebx
call fcn.00427430
add esp, 8
test eax, eax
jns 0x40384e
mov ecx, dword [0x4366dc]
mov eax, dword [0x439bc4]
shl ecx, 4
xor eax, 0x6cd0381c
or ecx, 0xd1002fe3
sar eax, 2
cmp eax, ecx
jle 0x4037db
mov ecx, dword [0x4341a8]
mov eax, dword [0x43ab00]
sar ecx, 8
and ecx, 0x2f66b3b2
or eax, ecx
cmp eax, 0x4416e6a1
jl 0x4037db
mov eax, dword [0x438564]
mov eax, dword [ebp + 8]
test eax, eax
je 0x4037f7
push 0
push eax
call fcn.00415bf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
movzx eax, word [0x43e4e4]
sub eax, 0x501e7725
mov word [0x43e4e4], ax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x403824
push ebx
push eax
call fcn.00402370
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
inc dword [0x438698]
mov eax, dword [0x438698]
and eax, 0xef76bee9
cmp eax, 0xbfdfadf5
jne 0x403845
and dword [0x435818], 0x183102
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
movsx eax, word [0x43f3a0]
imul eax, eax, 0xf1961882
push ebx
xor dword [0x435afc], eax
lea eax, [ebp - 0x30]
push eax
call fcn.00402370
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
mov ax, word [0x44156c]
mov ecx, dword [0x43c558]
cwde
imul ecx, eax
lea eax, [ebp - 0x3c]
push edi
push eax
mov word [0x44156c], cx
dec dword [0x43c558]
call fcn.00402370
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
and dword [0x4397c8], 0x7e222cd3
mov eax, dword [0x43d910]
xor eax, dword [0x435134]
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x30], 1
mov dword [0x435134], eax
mov eax, dword [ebx + 4]
add eax, 2
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00412250
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
xor dword [0x437724], 0xef9eff7f
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00415bf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
xor dword [0x437a00], 0xb551f469
lea eax, [ebp - 0x48]
push 2
push eax
call fcn.00412250
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
add dword [0x438ee0], 0x4a111fd8
lea eax, [ebp - 0x60]
push 3
push eax
call fcn.00412250
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
dec dword [0x43d804]
mov eax, dword [0x43d804]
cmp eax, 0x44411561
jl 0x403972
add dword [0x4379ec], 0x3a4be4ed
lea eax, [ebp - 0x3c]
push eax
call fcn.004191d0
mov edi, eax
add esp, 4
and edi, 0x8000001f
jns 0x40398d
dec edi
or edi, 0xffffffe0
inc edi
dec dword [0x4346fc]
mov edx, dword [0x4346fc]
mov ecx, dword [0x4361a8]
add ecx, edx
movsx edx, word [0x442202]
inc dword [0x4361a8]
and edx, ecx
inc word [0x442202]
cmp edx, 0xb9feecdf
jg 0x4039e8
dec word [0x44190c]
mov ax, word [0x44190c]
cwde
imul ecx, eax, 0xc30d836c
mov eax, dword [0x434108]
and ecx, eax
or dword [0x43a43c], ecx
dec dword [0x434108]
jmp 0x4039f2
or dword [0x439a74], 0xd92da33c
cmp edi, 0x1f
jge 0x403ac0
movsx eax, word [0x43f8b2]
imul ecx, eax, 0xb994c47f
movsx eax, word [0x43f6fc]
dec word [0x43f8b2]
inc word [0x43f6fc]
cmp eax, ecx
jg 0x403a57
mov ecx, dword [0x434630]
mov eax, dword [0x436844]
or ecx, 0x6e619bd7
inc dword [0x436844]
xor eax, 0x3e84bc71
inc dword [0x434630]
cmp ecx, eax
je 0x403a57
mov eax, dword [0x439ee4]
or eax, dword [0x438638]
mov dword [0x438638], eax
movzx eax, word [0x440a52]
mov ebx, 0x1f
xor eax, 0xa7ed9e49
sub ebx, edi
mov word [0x440a52], ax
lea eax, [ebp - 0x30]
push ebx
push eax
mov dword [ebp - 0x1c], ebx
call fcn.00404590
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
mov eax, dword [0x43c0e0]
shl eax, 6
xor eax, 0xb02d9c24
or dword [0x43a684], eax
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.00404590
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
add dword [0x43522c], 0xf06e69c7
jmp 0x403ac7
mov dword [ebp - 0x1c], 0
mov eax, dword [0x43a73c]
sub eax, dword [0x43822c]
mov ebx, dword [ebp - 0x2c]
mov dword [0x43a73c], eax
dec ebx
movzx eax, word [0x43fc6c]
mov edi, ebx
mov ecx, dword [ebp - 0x38]
add eax, 0x1f37382
mov word [0x43fc6c], ax
dec ecx
movzx eax, word [0x43e018]
sub edi, ecx
sub eax, 0x40102c81
mov dword [ebp - 0x18], ebx
mov word [0x43e018], ax
mov eax, edi
shl eax, 5
push eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x10], ecx
call fcn.00404590
mov eax, dword [0x436928]
mov ecx, 0xc1c4584b
sub ecx, eax
movzx eax, word [0x43e80a]
and ecx, 0xf5f7dd01
add eax, ecx
mov word [0x43e80a], ax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004056d0
add esp, 0x10
test eax, eax
js 0x403bb6
movzx eax, word [0x43ee82]
sub eax, 0x3260a7
mov word [0x43ee82], ax
mov eax, dword [ebp - 0x4c]
inc dword [eax + edi*4]
mov eax, dword [0x4393e0]
xor eax, dword [0x438d98]
mov dword [0x438d98], eax
lea eax, [ebp - 0x3c]
inc dword [0x4393e0]
push eax
lea eax, [ebp - 0x30]
push eax
push eax
call fcn.00406880
movzx eax, word [0x4414aa]
and eax, 0x3c8bef8c
mov word [0x4414aa], ax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004056d0
add esp, 0x14
test eax, eax
jns 0x403b54
movzx eax, word [0x4426cc]
push dword [ebp - 8]
sub eax, 0x4584639b
mov word [0x4426cc], ax
lea eax, [ebp - 0x3c]
push eax
call fcn.004117e0
mov eax, dword [0x435334]
add esp, 8
and eax, dword [0x43cc90]
dec dword [0x435334]
cmp eax, 0xfdeb96a7
jne 0x403bfb
and dword [0x43cc38], 0xeacc1d55
jmp 0x403c05
mov dword [0x437c00], 0x154d395f
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
jle 0x404390
mov eax, dword [ebp - 8]
shl edi, 2
add eax, 0xffffffe0
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], eax
nop
mov eax, dword [0x43ccdc]
xor eax, dword [0x4377b4]
mov dword [0x4377b4], eax
mov eax, dword [ebp - 0x28]
lea esi, [eax + ebx*4]
mov eax, dword [ebp - 0x34]
lea edi, [eax + ecx*4]
mov dword [ebp - 0x24], esi
mov eax, dword [esi]
cmp eax, dword [edi]
jb 0x403c58
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0xc]
mov dword [edi + eax - 4], 0xffffffff
jmp 0x404043
mov ecx, dword [0x438c28]
mov eax, dword [0x437078]
sar ecx, 6
sub ecx, eax
mov eax, dword [0x435908]
dec dword [0x437078]
xor eax, 0x53502742
cmp eax, ecx
jge 0x403c86
and dword [0x436c9c], 0x7c3c9979
movzx eax, word [0x43e5f2]
movsx ecx, ax
mov eax, dword [0x4380c8]
add eax, 0x3c408f6d
add eax, ecx
mov dword [0x4380c8], eax
inc word [0x43e5f2]
mov eax, dword [0x434f9c]
sar eax, 1
add eax, 0x484e2e8c
and dword [0x43cfbc], eax
mov ecx, dword [0x435050]
movzx eax, word [0x43eef0]
sub ecx, 0x13304b5a
mov edi, dword [edi]
and ecx, 0x458e24c5
add eax, ecx
mov word [0x43eef0], ax
dec word [0x4425b2]
movzx eax, di
mov dword [ebp - 0x14], eax
movzx eax, word [0x4425b2]
imul ecx, eax, 0x2e71f411
movzx eax, word [0x441f32]
xor ecx, eax
mov word [0x441f32], cx
mov ecx, edi
dec dword [0x438844]
mov eax, dword [0x438844]
imul eax, eax, 0x6de13d72
shr ecx, 0x10
mov dword [ebp - 8], ecx
add eax, 0x6103da5b
cmp eax, 0x79fde89a
jg 0x403d38
add dword [0x434bc0], 0x397a4e6d
jmp 0x403d48
mov eax, dword [0x436934]
and eax, 0xc96582d3
sub dword [0x43aca0], eax
mov eax, dword [esi]
xor edx, edx
div ecx
mov ecx, dword [0x4346d4]
xor ecx, 0x10d0e300
mov ebx, eax
or ecx, 0xa30f146e
mov edx, ebx
and dword [0x43b670], ecx
dec dword [0x4346d4]
movzx eax, word [0x43db8a]
imul edx, dword [ebp - 8]
mov ecx, dword [esi]
imul eax, eax, 0xe8c8a876
sub ecx, edx
shl ecx, 0x10
mov word [0x43db8a], ax
mov edx, dword [0x436f08]
mov eax, dword [0x43ceac]
sub edx, 0x1e8b751
not eax
and edx, 0xabe52fbc
sub eax, 0x706a52a7
cmp eax, edx
je 0x403dbc
xor dword [0x435c34], 0x3ca97a43
jmp 0x403dd9
mov edx, dword [0x4356e8]
movzx eax, word [0x43eb0e]
not edx
or edx, 0x36b2e17d
and eax, edx
mov word [0x43eb0e], ax
movzx eax, word [esi - 2]
mov esi, ebx
imul esi, dword [ebp - 0x14]
or ecx, eax
movzx eax, word [0x43e646]
sub eax, 0x403662ca
mov word [0x43e646], ax
mov eax, dword [0x43c24c]
dec dword [0x43c24c]
and eax, 0x587869b
cmp eax, 0x73dbe52f
je 0x403e2f
dec word [0x43e690]
mov edx, 0x1c77b591
mov ax, word [0x43e690]
cwde
sub edx, eax
xor edx, dword [0x434b00]
mov dword [0x434b00], edx
cmp ecx, esi
jae 0x403e65
add dword [0x43c2b8], 0xde50890f
add ecx, edi
xor dword [0x4358e4], 0xc7540034
dec ebx
cmp ecx, edi
jb 0x403e5b
mov edi, edi
cmp ecx, esi
jae 0x403e5b
add ecx, edi
dec ebx
cmp ecx, edi
jae 0x403e50
or dword [0x437ffc], 0xd906e48c
add dword [0x43ba00], 0xac4734d6
sub ecx, esi
movzx eax, word [0x441aa6]
xor edx, edx
or eax, 0x5447623
mov word [0x441aa6], ax
mov eax, ecx
div dword [ebp - 8]
mov edx, dword [0x43d088]
not edx
mov dword [ebp - 0x20], eax
or edx, 0xdb2adcc1
xor dword [0x4344f8], edx
mov esi, dword [0x43ca80]
movzx edx, word [0x440b36]
or esi, 0xedeeac9f
imul edx, esi
mov esi, eax
imul eax, dword [ebp - 8]
mov word [0x440b36], dx
dec dword [0x43ca80]
sub ecx, eax
mov eax, dword [0x43c7a8]
and eax, 0x1e2ed95d
shl ecx, 0x10
cmp eax, 0x40376081
jle 0x403f02
movsx eax, word [0x43f784]
sar eax, 0xa
sub eax, 0x4d29b201
cmp eax, 0xefffffff
jg 0x403f26
add dword [0x438c10], 0xc2b084dd
jmp 0x403f26
mov eax, dword [0x438960]
mov edx, 0xdcb95f03
sub edx, eax
mov eax, dword [0x43635c]
xor eax, 0x8c30f35b
cmp edx, eax
jl 0x403f26
xor dword [0x43a580], 0xcb77fb2b
mov eax, dword [ebp - 0x24]
movzx eax, word [eax - 4]
or ecx, eax
imul eax, dword [0x4340d8], 0xf85ea34d
mov dword [0x4340d8], eax
mov eax, esi
imul eax, dword [ebp - 0x14]
movsx edx, word [0x4407b0]
sar edx, 9
xor edx, 0xd5b0c7e1
mov dword [ebp - 0x24], eax
mov eax, dword [0x437c30]
inc dword [0x437c30]
xor eax, 0x96d919ca
cmp eax, edx
je 0x403f90
dec dword [0x438610]
mov eax, dword [0x438610]
mov edx, dword [0x439094]
shl edx, 6
xor edx, eax
cmp edx, 0x454f9ad3
jl 0x403f9a
mov eax, dword [0x435288]
jmp 0x403f9a
and dword [0x434f0c], 0x102668a
mov edx, dword [ebp - 0x24]
cmp ecx, edx
jae 0x403ff8
add dword [0x43be58], 0xb56a8e1
add ecx, edi
mov eax, dword [0x43c298]
dec esi
add eax, 0xfca8c05f
and dword [0x435090], eax
cmp ecx, edi
jb 0x403fcd
cmp ecx, edx
jae 0x403fcd
add ecx, edi
dec esi
cmp ecx, edi
jae 0x403fc2
mov eax, dword [0x43ca20]
sar eax, 0xa
add eax, 0x5d8ddbc6
or eax, 0x161a52e1
cmp eax, 0xad2c103a
jl 0x403ff8
movzx eax, word [0x442064]
xor eax, 0x496611d1
mov word [0x442064], ax
mov eax, dword [0x43d18c]
movzx ecx, word [0x441f0c]
mov edi, dword [ebp - 0xc]
shl eax, 8
add eax, 0x89a5a39a
shl ebx, 0x10
and ecx, eax
or ebx, esi
mov word [0x441f0c], cx
add dword [0x435780], 0xddf5394a
mov eax, dword [ebp - 0x4c]
mov dword [edi + eax - 4], ebx
movzx eax, word [0x4420d8]
mov ebx, dword [ebp - 0x18]
add eax, 0x207d000
mov word [0x4420d8], ax
or dword [0x4386a8], 0xfff39aff
mov eax, dword [ebp - 0x4c]
inc dword [edi + eax - 4]
dec dword [0x43c778]
mov eax, dword [0x43c778]
add eax, 0x97b4769a
xor eax, dword [0x439600]
mov dword [0x439600], eax
nop
mov eax, dword [0x43972c]
xor eax, dword [0x43729c]
xor eax, 0x88b0c0
mov dword [0x43729c], eax
inc dword [0x43972c]
mov eax, dword [ebp - 0x4c]
push 0
dec dword [edi + eax - 4]
dec dword [0x4395f4]
mov edx, dword [0x4395f4]
inc dword [0x43d694]
mov eax, dword [0x43d694]
mov ecx, dword [0x43a998]
shl ecx, 0xa
sub ecx, eax
lea eax, [ebp - 0x48]
xor ecx, edx
add dword [0x43670c], ecx
push eax
call fcn.00415bf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
mov eax, dword [0x43a534]
mov ecx, 0x7b327df6
mov edx, dword [ebp - 0x10]
sub ecx, eax
or ecx, 0x20797331
add dword [0x43b800], ecx
cmp edx, 1
jge 0x4040f8
xor ecx, ecx
jmp 0x4040ff
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + edx*4 - 4]
mov eax, dword [ebp - 0x40]
mov dword [eax], ecx
movzx eax, word [0x441f16]
xor eax, 0x981c45fc
mov word [0x440a6a], ax
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x40]
mov dword [eax + 4], ecx
add dword [0x43a104], 0xcecaf078
mov eax, dword [ebp - 0x4c]
push dword [edi + eax - 4]
lea eax, [ebp - 0x48]
push eax
push eax
call fcn.004088f0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x404552
cmp dword [0x438c60], 0x203da0a0
jle 0x404160
add dword [0x439768], 0xedbf15be
lea eax, [ebp - 0x60]
push 0
push eax
call fcn.00415bf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
xor dword [0x43d964], 0xe224aa9e
cmp ebx, 2
jge 0x40418b
xor ecx, ecx
jmp 0x404192
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + ebx*4 - 8]
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
add dword [0x438f84], 0x7bbfcdfe
cmp ebx, 1
jge 0x4041aa
xor ecx, ecx
jmp 0x4041b1
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + ebx*4 - 4]
mov eax, dword [ebp - 0x58]
mov dword [eax + 4], ecx
mov eax, dword [0x435fa8]
shl eax, 2
cmp eax, 0xd26b1397
jne 0x4041d0
mov dword [0x43bbac], 0x6285742a
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + ebx*4]
mov eax, dword [ebp - 0x58]
mov dword [eax + 8], ecx
lea eax, [ebp - 0x60]
xor dword [0x437e04], 0x482c83c
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.004056d0
add esp, 8
test eax, eax
jg 0x404070
imul eax, dword [0x435784], 0x3dc43e37
mov dword [0x435784], eax
mov eax, dword [ebp - 0x4c]
push dword [edi + eax - 4]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.004088f0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x404552
mov eax, dword [0x438f68]
push dword [ebp - 4]
or eax, 0xfbfffdd7
mov dword [0x43d454], eax
lea eax, [ebp - 0x48]
push eax
call fcn.00404590
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
movzx eax, word [0x43eb9a]
xor eax, 0x14032858
mov word [0x43eb9a], ax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x30]
push eax
push eax
call fcn.00406880
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x404552
mov ecx, dword [0x43b9d4]
movzx eax, word [0x43e1d2]
not ecx
add eax, ecx
xor eax, 0x7914220
mov word [0x43df8e], ax
lea eax, [ebp - 0x30]
push esi
push eax
call fcn.004275c0
add esp, 8
test eax, eax
jns 0x40436d
add dword [0x43441c], 0xfdfbb3af
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00402370
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
push dword [ebp - 4]
xor dword [0x437ff0], 0x7e823cfa
lea eax, [ebp - 0x48]
push eax
call fcn.00404590
mov esi, eax
add esp, 8
test esi, esi
jne 0x404552
movzx eax, word [0x4424bc]
xor eax, 0xa3007e3
mov word [0x4424bc], ax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x30]
push eax
push eax
call fcn.0040fa90
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x404552
mov eax, dword [0x43bd50]
mov ecx, 0x29905815
sub ecx, eax
or dword [0x43c37c], ecx
inc dword [0x43bd50]
mov eax, dword [ebp - 0x4c]
dec dword [edi + eax - 4]
mov eax, dword [0x4382e4]
mov ecx, dword [0x4388c4]
sar eax, 6
sub ecx, eax
movsx eax, word [0x44074e]
sub ecx, eax
mov dword [0x4388c4], ecx
dec word [0x44074e]
and dword [0x43814c], 0x57aa9776
dec ebx
sub dword [ebp - 4], 0x20
sub edi, 4
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], edi
cmp ebx, ecx
jg 0x403c20
mov eax, dword [0x437ae8]
movzx ecx, word [0x440a5a]
mov edi, dword [ebp + 8]
imul eax, eax, 0x65ee73a8
and ecx, eax
mov word [0x440a5a], cx
test edi, edi
je 0x4043f1
imul eax, dword [0x4369d0], 0x310178d1
mov dword [0x4369d0], eax
lea eax, [ebp - 0x54]
push eax
push edi
call fcn.00402370
mov ebx, dword [ebp + 0x10]
add esp, 8
xor dword [0x439a68], 0x56480001
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebx]
imul eax, dword [ecx]
mov dword [edi], eax
add dword [0x439bd4], 0xe41ffff8
jmp 0x4043f4
mov ebx, dword [ebp + 0x10]
movzx eax, word [0x4424d8]
mov edi, dword [ebp + 0xc]
xor eax, 0x7505d9c
mov word [0x4424d8], ax
test edi, edi
je 0x40451f
dec dword [0x439844]
mov eax, dword [0x439844]
xor eax, 0x5f569c19
cmp eax, 0x42475d23
jge 0x404442
mov ecx, dword [0x43c330]
mov eax, dword [0x4369a8]
and ecx, eax
mov eax, dword [0x4391cc]
imul eax, ecx
mov dword [0x4391cc], eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
push eax
call fcn.004117e0
lea eax, [ebp - 0x30]
mov dword [0x435664], 0x45883f40
push eax
push edi
call fcn.00402370
movsx eax, word [0x441f4e]
add esp, 0x10
cmp eax, 0x9118b965
jne 0x4044af
mov eax, dword [0x4389ec]
dec dword [0x4389ec]
add eax, 0x50e58370
cmp eax, 0xca0e03c4
jle 0x4044de
inc dword [0x43cba0]
mov eax, dword [0x43cba0]
mov ecx, dword [0x4371a8]
imul ecx, eax
movzx eax, word [0x4409c4]
xor eax, ecx
mov word [0x4409c4], ax
jmp 0x4044de
dec dword [0x439cf4]
mov eax, dword [0x439cf4]
movsx ecx, word [0x43f778]
shl ecx, 7
sub ecx, eax
add ecx, 0x58cda229
cmp ecx, 0xce7264fb
jg 0x4044de
or dword [0x4353f8], 0x804c0104
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [0x43b9cc]
mov ecx, dword [0x4374f8]
sar eax, 9
add eax, 0xce414cb5
shl ecx, 4
and ecx, eax
xor dword [0x43c8f0], ecx
push 0
push edi
call fcn.004275c0
add esp, 8
test eax, eax
jne 0x404515
mov dword [edi], 1
mov dword [0x434110], 0xa2e9ed26
mov eax, dword [0x439bf4]
shl eax, 3
xor eax, 0x76459abd
cmp eax, 0x5417d86a
jge 0x404552
movsx eax, word [0x4411c8]
add eax, eax
or eax, 0x7423e479
cmp eax, 0x3b23400
jl 0x404552
add dword [0x4381f0], 0x5a97eb72
push 0
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004103e0
movsx eax, word [0x43f244]
add esp, 0x18
or eax, 0x88205483
mov dword [0x43577c], eax
mov eax, esi
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret