Function at 0x415f50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xor dword [0x43ff3c], 0x30201081
movzx eax, word [0x44b20a]
xor eax, 0x88e9d078
mov word [0x44b20a], ax
mov cx, word [0x44ba12]
movsx edx, cx
mov ecx, dword [0x43c2a8]
mov eax, 0xa2f02595
sub eax, edx
sar ecx, 5
xor eax, 0x1069c22f
add ecx, 0x7200118d
sub esp, 0x58
cmp eax, ecx
jg 0x415fad
mov edx, dword [0x4439c4]
imul edx, edx, 0xff59907
mov dword [0x4439c4], edx
push ebx
mov ebx, dword [ebp + 0x14]
push 0
push ebx
call fcn.0042bf60
add esp, 8
test eax, eax
jne 0x415fca
mov eax, 0xfffffff4
pop ebx
mov esp, ebp
pop ebp
ret
and dword [0x44400c], 0xf0fb403b
push 0
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x40]
push ecx
lea edx, [ebp - 0x4c]
push edx
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.00405ce0
mov dx, word [0x44e356]
movsx eax, dx
sub eax, 0x121f4337
xor eax, 0x7f11ab45
add esp, 0x18
cmp eax, 0xb269e913
jle 0x416028
mov eax, dword [0x440d10]
movzx ecx, word [0x447738]
imul eax, eax, 0xe6bc5200
xor ecx, eax
mov word [0x447738], cx
push esi
push edi
mov edi, dword [ebp + 0x10]
push ebx
push edi
call fcn.00406a20
add esp, 8
test eax, eax
jge 0x4160a5
mov eax, dword [ebp + 8]
or dword [0x445564], 0x6cf0b7e3
test eax, eax
je 0x416061
push 0
push eax
call fcn.004252f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [ebp + 0xc]
xor dword [0x439b24], 0xe8cbada0
test eax, eax
je 0x416086
push edi
push eax
call fcn.00416dc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [0x438ab8]
add eax, 0xc62d5fe2
or dword [0x43a9a0], eax
inc dword [0x438ab8]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
add dword [0x438200], 0x2904940b
lea edx, [ebp - 0x28]
push edi
push edx
call fcn.00416dc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov ecx, dword [0x4379d0]
or eax, 0xffffffff
cmp ecx, 0x8f89e19d
jne 0x416124
add dword [0x437234], eax
add dword [0x43bf08], eax
mov edx, dword [0x43bf08]
mov eax, dword [0x437234]
and edx, eax
or edx, 0x4a0d3170
cmp edx, 0x1393a18a
je 0x416124
inc word [0x44d21e]
mov cx, word [0x44d21e]
movzx edx, word [0x449f2e]
movsx eax, cx
xor eax, 0x7f2e4e43
and edx, eax
mov word [0x449f2e], dx
lea eax, [ebp - 0x34]
push ebx
push eax
call fcn.00416dc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov ecx, dword [0x436dac]
mov edx, dword [0x442090]
or ecx, edx
or ecx, 0x761450c1
mov dword [0x436dac], ecx
mov ebx, 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x28], ebx
mov dword [0x44581c], 0x3a72a5a0
mov eax, dword [edi + 4]
add eax, 2
push eax
lea ecx, [ebp - 0x4c]
push ecx
call fcn.004070e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
push eax
lea edx, [ebp - 0x4c]
push edx
mov dword [0x441394], 0xb5682bbe
call fcn.004252f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
movzx eax, word [0x44d532]
lea ecx, [ebp - 0x40]
sub eax, 0x1012081
push 2
push ecx
mov word [0x44d532], ax
call fcn.004070e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
or dword [0x43c928], 0x3a9fe9b6
lea edx, [ebp - 0x58]
push 3
push edx
call fcn.004070e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
and dword [0x43bb28], 0xedd4d1e1
lea eax, [ebp - 0x34]
push eax
call fcn.0042cab0
add esp, 4
and eax, 0x8000001f
jns 0x416216
dec eax
or eax, 0xffffffe0
inc eax
movzx ecx, word [0x446cc8]
add ecx, 0x10021617
cmp eax, 0x1f
mov word [0x446cc8], cx
jge 0x416319
mov edx, dword [0x44263c]
xor edx, 0x8f71b0e2
cmp edx, 0xd6ba403f
jge 0x416259
mov ecx, dword [0x43dbd4]
imul ecx, ecx, 0x129bace7
mov dword [0x43dbd4], ecx
mov edi, 0x1f
sub edi, eax
lea edx, [ebp - 0x28]
push edi
push edx
mov dword [ebp - 0x1c], edi
mov dword [0x43d400], 0x10abb22
call fcn.00413b00
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
dec dword [0x44638c]
mov eax, dword [0x44638c]
cmp eax, 0xd2c0188f
jg 0x4162ba
mov eax, dword [0x443100]
mov ecx, dword [0x43da24]
add eax, 0x787985c1
or ecx, eax
cmp ecx, 0xca609142
je 0x4162ba
and dword [0x43f88c], 0xbf815cc
lea edx, [ebp - 0x34]
push edi
push edx
call fcn.00413b00
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [0x43d89c]
xor eax, 0x5bb94016
cmp eax, 0x5058b702
jl 0x416320
mov ecx, dword [0x43b3ac]
mov edx, dword [0x438048]
imul ecx, edx
or ecx, 0xf8078373
cmp ecx, 0x58236d5b
jl 0x416320
add dword [0x43d118], ebx
mov eax, dword [0x445878]
mov ecx, dword [0x43d118]
sub eax, ecx
mov dword [0x445878], eax
jmp 0x416320
mov dword [ebp - 0x1c], 0
xor dword [0x43c120], 0x1f73474b
mov eax, dword [0x441a28]
mov edx, dword [ebp - 0x24]
dec edx
sar eax, 4
mov dword [ebp - 0x14], edx
cmp eax, 0xa5383a85
je 0x41634a
or dword [0x43f4c4], 0x800000
mov dx, word [0x44bef2]
mov ecx, dword [ebp - 0x30]
movsx eax, dx
dec ecx
sub eax, 0x34d27b2e
cmp eax, 0x2577da7d
mov dword [ebp - 4], ecx
jl 0x416373
add dword [0x43fdac], 0x8a58853b
jmp 0x41637d
add dword [0x440a38], 0x194f4d76
mov edi, dword [ebp - 0x14]
sub edi, ecx
mov ebx, edi
shl ebx, 5
lea ecx, [ebp - 0x34]
push ebx
push ecx
call fcn.00413b00
movzx edx, word [0x44cf34]
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x28]
xor edx, 0x8e067658
push ecx
mov word [0x44cf34], dx
call fcn.00402310
add esp, 0x10
test eax, eax
jl 0x41641d
lea esp, [esp]
movzx edx, word [0x44dc56]
mov eax, dword [ebp - 0x44]
imul edx, edx, 0x87513511
mov word [0x44dc56], dx
inc dword [eax + edi*4]
lea ecx, [ebp - 0x34]
mov eax, 0x2028
push ecx
lea edx, [ebp - 0x28]
mov word [0x44977a], ax
push edx
mov eax, edx
push eax
call fcn.00427930
movzx ecx, word [0x448800]
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x28]
xor ecx, 0xfdffff75
push eax
mov word [0x448800], cx
call fcn.00402310
add esp, 0x14
test eax, eax
jge 0x4163c0
dec dword [0x4392a8]
mov ecx, dword [0x4392a8]
mov edx, 0x6c478d5b
sub edx, ecx
lea eax, [ebp - 0x34]
xor edx, 0x3c52538f
push ebx
mov dword [0x4420e0], edx
push eax
call fcn.0042d6f0
mov eax, dword [ebp - 0x14]
add esp, 8
cmp eax, dword [ebp - 4]
mov dword [0x4408dc], 0x8e18024
mov dword [ebp - 0xc], eax
jle 0x416c28
add edi, edi
add edi, edi
add ebx, 0xffffffe0
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], ebx
nop
mov eax, dword [0x445cf8]
mov edx, dword [ebp - 0xc]
not eax
and eax, 0xfdf8c581
xor dword [0x445c4c], eax
mov ecx, dword [ebp - 0x20]
lea eax, [ecx + edx*4]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [eax]
cmp eax, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
jb 0x4164ae
mov ecx, dword [ebp - 0x44]
mov dword [edi + ecx - 4], 0xffffffff
jmp 0x416830
mov eax, dword [0x43cd50]
mov edx, dword [0x440544]
imul eax, eax, 0x1a4296a
or edx, eax
or edx, 0xfb30f39b
mov dword [0x440544], edx
mov eax, 1
add dword [0x43cd50], eax
mov edx, dword [0x43b1d4]
imul edx, edx, 0xfe274c71
mov dword [0x437498], edx
add dword [0x43b1d4], eax
and dword [0x43e0f4], 0x3762dfe5
mov esi, dword [ecx]
mov ecx, dword [0x439b5c]
and ecx, 0x28181270
or ecx, 0x1525ad0e
cmp ecx, 0x3905e0b
jg 0x416527
mov eax, dword [0x445328]
add eax, eax
add eax, eax
or dword [0x43dc20], eax
jmp 0x41653e
add dword [0x437b84], eax
mov eax, dword [0x437b84]
imul eax, eax, 0xb800a57
sub dword [0x44173c], eax
mov ecx, dword [ebp - 0x10]
mov dword [0x438d40], 0x3406a2e1
mov eax, dword [0x446120]
mov edx, dword [0x445bc0]
imul eax, eax, 0x1738e740
add eax, 0x5c8376a7
imul edx, eax
mov dword [0x445bc0], edx
mov eax, dword [ecx]
mov edi, esi
shr edi, 0x10
xor edx, edx
div edi
mov ebx, eax
mov eax, dword [0x441414]
sub eax, 0x55a3e9c9
xor eax, 0x89d8c011
cmp eax, 0x9e60caa4
mov dword [ebp - 8], ebx
jg 0x41659a
mov dword [0x438258], 0x1a87e5ac
mov eax, dword [ecx]
mov ecx, dword [0x43da90]
mov edx, ebx
imul ecx, ecx, 0x6688e798
imul edx, edi
sub eax, edx
mov edx, dword [0x43b424]
sub edx, ecx
cmp edx, 0x39412374
je 0x4165c9
add dword [0x444a94], 0xffa6bf00
add dword [0x43e09c], 0x19abedc1
mov ecx, dword [ebp - 0x10]
movzx ecx, word [ecx - 2]
inc dword [0x43e3f4]
shl eax, 0x10
or ecx, eax
mov eax, dword [0x43e3f4]
movzx edx, word [0x44dffa]
imul eax, eax, 0x57f18863
xor eax, 0x4c09236
and edx, eax
mov word [0x44dffa], dx
movzx edx, si
mov eax, ebx
imul eax, edx
movzx edx, word [0x44b060]
and edx, 0x72bb7ced
mov word [0x44b060], dx
cmp ecx, eax
jae 0x41666d
movzx edx, word [0x4492f6]
sub edx, 0x32f34512
mov word [0x4492f6], dx
mov edx, dword [0x43b8bc]
imul edx, edx, 0x63c3bd66
dec ebx
add ecx, esi
mov dword [ebp - 8], ebx
mov dword [0x43b8bc], edx
cmp ecx, esi
jb 0x416663
cmp ecx, eax
jae 0x416660
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x416655
mov dword [ebp - 8], ebx
mov dword [0x438ab8], 0x52dc8c61
mov edx, dword [0x445298]
add edx, 0xb5e64671
xor dword [0x4443e4], edx
inc dword [0x445298]
sub ecx, eax
movzx eax, word [0x44bdaa]
sub eax, 0x1503b534
xor edx, edx
mov word [0x44bdaa], ax
mov eax, ecx
div edi
mov dx, word [0x44b110]
movsx edx, dx
not edx
cmp edx, 0x3da162c2
je 0x4166d7
dec word [0x44b1be]
mov dx, word [0x44aeac]
movzx ebx, word [0x44b1be]
movsx edx, dx
and ebx, edx
mov word [0x44aeac], bx
mov ebx, dword [ebp - 8]
dec dword [0x445b28]
mov edx, eax
imul edx, edi
sub ecx, edx
mov edx, dword [0x43802c]
mov edi, dword [0x445b28]
and edx, edi
mov edi, dword [0x43f0ac]
and edi, 0x937fdaf
cmp edi, edx
jne 0x416736
mov dx, word [0x44bc7e]
movsx edx, dx
cmp edx, 0x52250a8
jle 0x416736
mov dx, word [0x448fae]
mov edi, dword [0x442898]
movsx edx, dx
shl edx, 0xa
xor edx, 0x1daab67e
imul edi, edx
mov dword [0x442898], edi
mov dx, word [0x44c5e8]
movsx edi, dx
add edi, edi
add edi, edi
add edi, edi
mov edx, 0x7613c9f7
sub edx, edi
movzx edi, word [0x44dc9c]
imul edi, edx
mov edx, dword [ebp - 0x10]
mov word [0x44dc9c], di
movzx edx, word [edx - 4]
shl ecx, 0x10
or ecx, edx
movzx edi, si
mov edx, eax
imul edx, edi
mov dword [0x43d6e8], 0x220d11a4
add dword [0x43a514], 0x842e8cdc
cmp ecx, edx
jae 0x4167d0
mov dword [0x440cac], 0xe936eefd
add dword [0x444924], 0x9613e8dd
add ecx, esi
dec eax
cmp ecx, esi
jb 0x4167b0
cmp ecx, edx
jae 0x4167b0
add ecx, esi
dec eax
cmp ecx, esi
jae 0x4167a5
mov edx, dword [0x445a8c]
mov ecx, dword [0x439f18]
not edx
imul ecx, edx
mov edx, dword [0x43fc44]
imul edx, ecx
mov dword [0x439f18], edx
mov cx, word [0x44c4d0]
movsx edx, cx
imul edx, edx, 0x877f94cd
and edx, 0xbbdac634
cmp edx, 0x7110cb96
jne 0x416808
mov cx, word [0x449334]
mov edx, dword [0x43d394]
movsx ecx, cx
lea ecx, [edx + ecx + 1]
mov dword [0x43d394], ecx
add dword [0x43d4ac], 0x30c00002
mov edx, dword [ebp - 0x44]
shl ebx, 0x10
or ebx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + edx - 4], ebx
mov ebx, dword [ebp - 0x18]
mov dword [0x445938], 0x5bb46cfe
mov edi, eax
mov eax, dword [0x4400e8]
and eax, 0x4206d840
add dword [0x444610], eax
mov eax, dword [ebp - 0x44]
inc dword [edi + eax - 4]
movzx ecx, word [0x448498]
xor ecx, 0x324054c
mov word [0x448498], cx
jmp 0x416860
add dword [0x43e074], 0xfd6ff7bb
mov eax, dword [ebp - 0x44]
dec dword [edi + eax - 4]
inc dword [0x4384b0]
mov edx, dword [0x441aa8]
mov eax, dword [0x4384b0]
lea ecx, [ebp - 0x40]
sub edx, eax
push 0
push ecx
mov dword [0x441aa8], edx
call fcn.004252f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov dx, word [0x447c16]
mov ecx, dword [0x4403fc]
movsx eax, dx
sub eax, 0x3f319835
and eax, 0x76b86ece
imul ecx, eax
mov dword [0x4403fc], ecx
mov ecx, dword [ebp - 4]
cmp ecx, 1
jge 0x4168d1
xor eax, eax
jmp 0x4168d8
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [ebp - 0x38]
mov dword [edx], eax
mov eax, dword [0x43bc2c]
sar eax, 1
add eax, 0xd468f329
add dword [0x43ebb4], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0x38]
mov dword [edx + 4], ecx
xor dword [0x43c0a8], 0xff66e702
mov eax, dword [ebp - 0x44]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [ebp - 0x40]
push edx
mov eax, edx
push eax
call fcn.004011a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x416d7f
movzx ecx, word [0x4482f8]
push eax
lea edx, [ebp - 0x58]
xor ecx, 0x2617e098
push edx
mov word [0x4482f8], cx
call fcn.004252f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [0x443150]
mov ecx, dword [ebp - 0xc]
imul eax, eax, 0x61634784
cmp ecx, 2
mov dword [0x443150], eax
jge 0x41696d
xor eax, eax
jmp 0x416974
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + ecx*4 - 8]
mov edx, dword [ebp - 0x50]
mov dword [edx], eax
mov eax, dword [0x437780]
and eax, 0x1b9b1000
or eax, 0x646085cc
and dword [0x440528], eax
cmp ecx, 1
jge 0x416997
xor eax, eax
jmp 0x41699e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [ebp - 0x50]
mov dword [edx + 4], eax
mov eax, dword [0x444b60]
mov edx, dword [ebp - 0x20]
imul eax, eax, 0x358a2261
mov dword [0x444b60], eax
mov eax, dword [edx + ecx*4]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 8], eax
mov edx, dword [0x43fef0]
lea eax, [ebp - 0x58]
not edx
push eax
lea ecx, [ebp - 0x40]
add edx, 0x2219bdd3
push ecx
mov dword [0x441eec], edx
call fcn.00402310
add esp, 8
test eax, eax
jg 0x416860
mov edx, dword [0x44500c]
cmp edx, 0x3c8cca35
jle 0x416a17
mov eax, dword [0x4396e4]
and eax, 0x3baed93e
cmp eax, 0x88028102
jg 0x416a21
add dword [0x4424c4], 0x5e35e948
jmp 0x416a21
add dword [0x44063c], 0xbf7435b2
mov ecx, dword [ebp - 0x44]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.004011a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x416d7f
mov edx, dword [0x441e78]
mov eax, dword [0x4421f8]
cmp eax, edx
je 0x416a9e
mov ecx, dword [0x4416d0]
mov dx, word [0x44cd7c]
sar ecx, 6
movsx eax, dx
imul eax, ecx
mov ecx, dword [0x440948]
inc word [0x44cd7c]
and ecx, eax
cmp ecx, 0xadb8c808
je 0x416a9e
mov dx, word [0x449838]
mov ecx, dword [0x43c5fc]
movsx eax, dx
or ecx, eax
mov word [0x449838], cx
dec dword [0x43c5fc]
lea edx, [ebp - 0x40]
push ebx
push edx
call fcn.00413b00
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [0x44286c]
cmp eax, 0x548a0ce0
jg 0x416ad7
mov cx, word [0x447daa]
movsx edx, cx
imul edx, edx, 0xcc410c6d
mov dword [0x43e0d0], edx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
push ecx
mov edx, ecx
push edx
call fcn.00427930
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x416d7f
mov eax, dword [0x43ad64]
movzx ecx, word [0x448770]
and eax, 0x6c362000
lea edx, [ebp - 0x28]
add ecx, eax
push esi
push edx
mov word [0x448770], cx
call fcn.0042bf60
add esp, 8
test eax, eax
jge 0x416c01
and dword [0x43902c], 0xfe094d0f
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.00416dc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
mov eax, dword [0x4389d0]
lea edx, [ebp - 0x40]
add eax, 0xa23073ae
xor dword [0x441948], eax
push ebx
push edx
call fcn.00413b00
mov esi, eax
add esp, 8
test esi, esi
jne 0x416d7f
add dword [0x4420b8], 0x4609ba5
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
push ecx
mov edx, ecx
push edx
call fcn.004067e0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x416d7f
or edx, 0xffffffff
add dword [0x43f504], edx
inc dword [0x444270]
mov ax, word [0x44774c]
movsx ecx, ax
mov eax, dword [0x43f504]
shl ecx, 6
add eax, ecx
mov ecx, dword [0x444270]
or eax, 0xb4e5dc07
add ecx, 0x1f44b581
cmp eax, ecx
jg 0x416bd8
xor dword [0x436dfc], 0x292abc5
jmp 0x416bee
mov ax, word [0x448c1c]
mov ecx, dword [0x440400]
cwde
imul ecx, eax
mov dword [0x440400], ecx
mov eax, dword [ebp - 0x44]
add dword [edi + eax - 4], edx
mov edx, 0x4351
mov word [0x44b56a], dx
mov eax, 0x3b20
mov word [0x4486a4], ax
mov eax, dword [ebp - 0xc]
dec eax
sub ebx, 0x20
sub edi, 4
cmp eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jg 0x416470
mov edi, dword [ebp + 8]
and dword [0x43c2f0], 0x3f03088
test edi, edi
je 0x416ca6
mov eax, 1
add dword [0x441f7c], eax
add dword [0x442f8c], eax
mov ecx, dword [0x441f7c]
mov dx, word [0x44e21c]
imul ecx, ecx, 0x72569c19
movsx eax, dx
sub eax, ecx
mov ecx, dword [0x442f8c]
lea edx, [ebp - 0x4c]
push edx
sub eax, ecx
mov word [0x44e21c], ax
push edi
call fcn.00416dc0
movzx eax, word [0x44b360]
mov ecx, dword [ebp + 0x10]
add eax, 0x121d5f7b
mov word [0x44b360], ax
mov edx, dword [ecx]
mov eax, dword [ebp + 0x14]
imul edx, dword [eax]
add esp, 8
mov dword [edi], edx
add dword [0x439230], 0x9dc064ef
mov eax, dword [0x4392f0]
movzx ecx, word [0x44c844]
mov edi, dword [ebp + 0xc]
not eax
and eax, 0x9244104
or eax, 0xa45bb68b
and ecx, eax
mov word [0x44c844], cx
test edi, edi
je 0x416d75
mov edx, dword [ebp - 0x1c]
add dword [0x4451f0], 0x174e1ac0
push edx
lea eax, [ebp - 0x28]
push eax
call fcn.0042d6f0
and dword [0x438cd4], 0x528e000c
lea ecx, [ebp - 0x28]
push ecx
push edi
call fcn.00416dc0
mov dx, word [0x44dfc0]
movsx eax, dx
sar eax, 9
imul eax, eax, 0x68265cdb
xor eax, 0xe4f183f6
add esp, 0x10
cmp eax, 0x223a4a8a
je 0x416d3b
mov cx, word [0x44cf1a]
movsx edx, cx
cmp edx, 0xd694b776
jl 0x416d3b
mov dword [0x440944], 0x25200906
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push 0
mov dword [edi], ecx
xor dword [0x443d74], 0x97eeb6f1
push edi
call fcn.0042bf60
add esp, 8
test eax, eax
jne 0x416d61
mov dword [edi], 1
movzx edx, word [0x448358]
sub edx, 0x343ae69c
mov word [0x448358], dx
and dword [0x443fac], 0x18602020
push 0
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x40]
push ecx
lea edx, [ebp - 0x4c]
push edx
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.00417450
movzx edx, word [0x447bac]
add esp, 0x18
imul edx, edx, 0x8f9aadbb
pop edi
mov eax, esi
pop esi
mov word [0x447bac], dx
pop ebx
mov esp, ebp
pop ebp
ret