Function at 0x43e8b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
mov ebx, ebx
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp - 0x1c], 0x4afffcd9
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x68
mov esp, esp
push esi
mov esi, ecx
mov dword [ebp - 0x10], 0x3027538c
sub dword [ebp - 0x10], 0x2551f1ba
mov dword [esp - 0xc], 0x28982d38
xor dword [ebp - 0x10], 0x1b2a99d7
add dword [ebp - 0x10], 0x67ceada0
sub dword [ebp - 0x10], 0x3fb227f9
xchg esp, esp
sub dword [ebp - 0x10], 0x3a1c7dac
push edi
xor edi, edi
mov dword [ebp - 0xc], esi
xchg edx, edx
mov dword [ebp - 0x14], edi
test dword [esi + 0x20], 0x4000
jne 0x43ed22
nop
xchg esp, esp
sub esp, 4
mov dword [esp], 0x63978186
sub dword [esp], 0x62da8fef
xor dword [esp], 0x53a6097a
mov dword [esp - 0x2c], 0x467da69
sub dword [esp], 0x3b2429b0
xor dword [esp], 0x17f6cf25
call fcn.00490c50
mov ecx, eax
mov esp, esp
add esp, 4
lea eax, [esi + 0x44]
mov dword [ebp - 8], eax
mov dword [esp - 0x1c], edx
test ecx, ecx
je 0x43e9b6
mov eax, dword [eax]
xchg esp, esp
nop
sub esp, 4
mov dword [esp], 0xd0d018c
xchg edx, edx
add dword [esp], 0x9300008
xor dword [esp], 0x16c29e06
add dword [esp], 0x49404f04
mov dword [esp - 0x1c], ebx
xor dword [esp], 0x6c33fc7a
sub dword [esp], 0x260c12eb
add eax, 0x1c
xchg esi, esi
push eax
call fcn.00487830
mov edi, eax
jmp 0x43e9bd
xor edi, edi
mov dword [ebp - 8], eax
xchg esp, esp
mov ecx, edi
mov dword [ebp - 0x14], edi
call fcn.00487c90
test al, al
mov dword [esp - 0x3c], 0x5482e506
je 0x43ecd1
call fcn.00491ed0
movzx esi, ax
mov dword [esp - 0x20], ebp
shl esi, 0x10
call fcn.00491ed0
movzx eax, ax
mov ebp, ebp
mov ecx, edi
or eax, esi
push eax
mov dword [esp - 0x34], 0x3e64c184
nop
mov dword [esp - 4], 0x250ee532
add dword [esp - 4], 0x273669c
xor dword [esp - 4], 0x3ef1486b
xchg ebx, ebx
xor dword [esp - 4], 0x3c756e24
add dword [esp - 4], 0x1cf64f9f
xor dword [esp - 4], 0x872b2ac9
mov dword [esp - 0x3c], ebp
sub esp, 4
sub esp, 4
mov dword [esp], 0xcf1cfb0
xor dword [esp], 0x4588f59f
mov dword [esp - 0x30], 0xdbfec79
sub dword [esp], 0x1bb1943b
add dword [esp], 0x4f4482b5
xor dword [esp], 0x7402f69a
mov esp, esp
xor dword [esp], 0x46dac996
call fcn.004886d0
mov esi, dword [ebp - 0xc]
mov ecx, esi
mov dword [esp - 0x18], 0x5381de38
nop
sub esp, 4
mov dword [esp], 0x1c3c2c51
mov dword [esp - 0x1c], edx
sub dword [esp], 0x28999c1
add dword [esp], 0x64c244fd
sub dword [esp], 0x2e19e23c
mov dword [esp - 0x40], esp
sub dword [esp], 0x1f1b466f
add dword [esp], 0x4e7125e1
sub dword [esp], 0x7fb0d4c3
mov dword [esp - 0x44], esp
mov dword [ebp - 0x10], eax
call fcn.0043e360
push eax
mov dword [esp - 0x3c], 0x360897c6
nop
mov dword [esp - 4], 0x11fb42a0
xor dword [esp - 4], 0x734a5f26
mov dword [esp - 0xc], 0x3bc63769
xor dword [esp - 4], 0x7f49d393
sub dword [esp - 4], 0x1c74df
xor dword [esp - 4], 0x53a42a5
add dword [esp - 4], 0x5f5ee1c8
mov dword [esp - 0x1c], 0x17cff122
sub dword [esp - 4], 0x2870e5b6
sub esp, 4
mov ecx, edi
call fcn.00488750
xchg ebx, ebx
mov dword [ebp - 0x18], eax
test eax, eax
je 0x43ed22
nop
mov dword [esp - 0x2c], 0x155782dc
sub esp, 4
mov dword [esp], 0x417f4228
add dword [esp], 0x250386e3
mov esi, esi
sub dword [esp], 0x23e9804a
sub dword [esp], 0x2fe63051
xor dword [esp], 0xed4ce78f
push eax
mov dword [esp - 0x1c], 0x74beabbc
lea ecx, [ebp - 0x30]
call fcn.00405d30
push dword [ebx + 8]
push dword [ebp - 0x10]
mov dword [esp - 0x40], 0x4a778dd8
push dword [eax]
mov eax, dword [ebp - 8]
nop
mov dword [esp - 4], 0x4859f7b3
mov edx, edx
sub dword [esp - 4], 0x3100ce7e
add dword [esp - 4], 0x37f03bf5
sub dword [esp - 4], 0x28ebf23c
xor dword [esp - 4], 0x1e2204bc
xchg esp, esp
xor dword [esp - 4], 0x387f760e
sub esp, 4
mov eax, dword [eax]
mov dword [esp - 0x14], edx
add eax, 0x14
push eax
lea eax, [ebp - 0x38]
xchg ebp, ebp
push eax
call fcn.00485310
add esp, 0xc
push eax
mov dword [esp - 0x24], 0x2b265594
lea eax, [ebp - 0x40]
push eax
call fcn.004850a0
add esp, 0xc
mov esi, esi
mov ecx, esi
push eax
call fcn.0043f760
mov esp, esp
cmp dword [ebp - 0x3c], 2
mov byte [ebp - 1], al
jbe 0x43ec10
xchg ecx, ecx
push dword [ebp - 0x40]
call fcn.00490c60
add esp, 4
mov edx, edx
cmp dword [ebp - 0x34], 2
jbe 0x43ec25
push dword [ebp - 0x38]
call fcn.00490c60
mov dword [esp - 0x24], ebx
add esp, 4
cmp byte [ebp - 0x2c], 0
je 0x43ec38
push dword [ebp - 0x30]
xchg ebx, ebx
call fcn.00490c60
add esp, 4
cmp byte [ebp - 1], 0
je 0x43ecbc
xchg esi, esi
test edi, edi
je 0x43ec8c
mov ecx, edi
call fcn.00487a70
xchg esi, esi
nop
sub esp, 4
mov dword [esp], 0x7f482a2f
xor dword [esp], 0x41219b89
xchg edx, edx
xor dword [esp], 0x1f241419
xor dword [esp], 0x33a7de7a
add dword [esp], 0x29209454
mov edx, edx
xor dword [esp], 0x3c0b1001
push edi
call fcn.00490c70
mov dword [esp - 0x1c], esp
add esp, 8
push dword [ebp - 0x18]
call fcn.00490c60
mov esp, esp
add esp, 4
mov al, 0x73
sub al, 6
sub al, 0x66
mov esp, esp
xor al, 0xd
xor al, 0x3b
xor al, 0x30
pop edi
mov dword [esp - 0x1c], 0x46332a14
pop esi
mov esp, ebp
pop ebp
xchg ebx, ebx
mov esp, ebx
pop ebx
ret 4
push dword [ebp - 0x18]
call fcn.00490c60
mov dword [esp - 0x20], 0x4560cb84
add esp, 4
jmp 0x43ed22
test edi, edi
je 0x43ed1d
mov ecx, edi
call fcn.00487a70
mov edi, edi
nop
sub esp, 4
mov dword [esp], 0x1321d8d8
sub dword [esp], 0x121284d0
mov edi, edi
add dword [esp], 0x2c80f9be
add dword [esp], 0x126a376d
xor dword [esp], 0xd6f5346
xchg edi, edi
xor dword [esp], 0x3295d66d
push edi
call fcn.00490c70
mov dword [esp - 0x38], ebp
add esp, 8
xor edi, edi
mov dword [ebp - 0x14], edi
push dword [ebx + 8]
mov dword [esp - 0xc], ebp
mov ecx, esi
call fcn.0043fc80
test al, al
mov dword [esp - 0x28], edi
je 0x43f6ea
test edi, edi
je 0x43f6c9
mov dword [ebp - 8], 0x7867178c
mov dword [esp - 0x38], ebx
sub dword [ebp - 8], 0x21827683
xor dword [ebp - 8], 0x5b169f9d
add dword [ebp - 8], 0xb5a533
xor dword [ebp - 8], 0x4b89b8ac
mov dword [esp - 0x30], ecx
add dword [ebp - 8], 0x37b6d0f9
sub dword [ebp - 8], 0x67220585
mov eax, dword [ebp - 8]
mov dword [esp - 0x18], edx
nop
mov dword [esp - 4], 0x6ccd384b
sub dword [esp - 4], 0x5f3528f7
mov dword [esp - 0x10], 0x35bb7a15
add dword [esp - 4], 0x6d80df24
sub dword [esp - 4], 0x495b2a85
sub dword [esp - 4], 0x31bdc3eb
mov dword [esp - 0x18], ecx
sub esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], 0x438a0f64
xor dword [ebp - 0x24], 0x3eb7a39d
mov dword [esp - 0x2c], 0x42a4bd27
sub dword [ebp - 0x24], 0x127bfbc7
xor dword [ebp - 0x24], 0x402365c3
sub dword [ebp - 0x24], 0x2ae2d4ed
call fcn.00490c90
mov ebp, ebp
xor ecx, ecx
add esp, 4
mov edx, eax
mov dword [ebp - 0x28], edx
mov dword [esp - 0x18], ecx
cmp dword [ebp - 0x24], ecx
jbe 0x43ee20
lea ebx, [ebx]
movsx ax, byte [ebp + ecx - 0x18]
mov edi, edi
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, dword [ebp - 0x24]
mov dword [esp - 0x30], edi
jb 0x43ee0a
lea eax, [ebp - 0x28]
mov ecx, 0x4c15b8
push eax
mov dword [esp - 0x2c], 0x241a7c91
nop
mov dword [esp - 4], 0xa73986c
sub dword [esp - 4], 0x2c008c8
mov dword [esp - 0x44], edi
add dword [esp - 4], 0x241eee37
add dword [esp - 4], 0x4f8f7346
sub dword [esp - 4], 0x56ec6c71
mov dword [esp - 0x3c], ebp
xor dword [esp - 4], 0x3024133e
sub dword [esp - 4], 0x14519784
sub esp, 4
mov esp, esp
nop
mov dword [esp - 4], 0x5f5d3de7
xor dword [esp - 4], 0x7193753a
xchg ebp, ebp
add dword [esp - 4], 0x1722fd24
sub dword [esp - 4], 0x3b9a184e
add dword [esp - 4], 0x713091a
xor dword [esp - 4], 0x116a36c8
xchg esi, esi
sub esp, 4
lea eax, [ebp - 0x38]
push eax
mov edx, edx
call fcn.0048a3b0
push eax
lea eax, [ebp - 0x40]
push eax
xchg esp, esp
call fcn.00484df0
add esp, 0xc
cmp dword [ebp - 0x34], 2
mov dword [esp - 0x38], edx
jbe 0x43eee6
push dword [ebp - 0x38]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x1c], 0x113a9594
cmp dword [ebp - 0x24], 2
jbe 0x43eeff
push dword [ebp - 0x28]
call fcn.00490c60
mov dword [esp - 0x1c], 0x5b91384e
add esp, 4
lea eax, [ebp - 0x40]
push eax
mov eax, dword [esi + 0x44]
xchg ebp, ebp
add eax, 0x14
nop
sub esp, 4
xchg esp, esp
mov dword [esp], 0x587829ee
xor dword [esp], 0x28dd7fe2
xor dword [esp], 0x5799d5a
sub dword [esp], 0x159491b0
mov dword [esp - 0x30], 0x6732640c
sub dword [esp], 0x5ed19a70
xor dword [esp], 0x1769f6a
push eax
mov dword [esp - 0x1c], ecx
lea eax, [ebp - 0x38]
push eax
call fcn.00485310
xchg edi, edi
add esp, 0xc
push eax
lea eax, [ebp - 0x30]
push eax
xchg esi, esi
call fcn.00484df0
add esp, 0xc
cmp dword [ebp - 0x34], 2
jbe 0x43ef7c
mov esi, esi
push dword [ebp - 0x38]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x44], esp
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x28]
push dword [ebp - 0x10]
mov eax, dword [eax]
xchg esp, esp
mov dword [ebp - 0x20], eax
call fcn.004863d0
nop
mov dword [esp - 0x18], ecx
mov dword [esp - 4], 0x1611364e
add dword [esp - 4], 0x62f82b50
xor dword [esp - 4], 0x187d2ffd
mov esi, esi
sub dword [esp - 4], 0x2cb8476
xor dword [esp - 4], 0x5ea8c9ef
sub esp, 4
lea eax, [ebp - 0x30]
mov dword [esp - 0x44], esi
push eax
lea ecx, [ebp - 0x28]
call fcn.00486440
test al, al
mov dword [esp - 0x2c], 0x6a1bc34
je 0x43f639
mov eax, dword [esi + 0x28]
lea ecx, [ebp - 0x28]
mov dword [esp - 0x2c], edi
xor eax, 0x5d3156cb
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x2c]
xor eax, 0x5d3156cb
mov dword [esp - 0xc], 0x52be80c4
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x38]
nop
mov dword [esp - 4], 0x601f72d7
mov dword [esp - 0x20], 0x357f1c8d
sub dword [esp - 4], 0x272df551
xor dword [esp - 4], 0x5d5871dc
sub dword [esp - 4], 0x5cc87ddd
xor dword [esp - 4], 0x396e83d1
mov dword [esp - 0x3c], 0x10279762
add dword [esp - 4], 0x3919cbd0
xor dword [esp - 4], 0x6aa7d974
sub esp, 4
push eax
xchg esp, esp
call fcn.00486d30
test al, al
je 0x43f639
xchg edi, edi
mov eax, dword [esi + 0x34]
lea ecx, [ebp - 0x28]
xor eax, 0x5d3156cb
mov dword [ebp - 0x1c], eax
mov ebx, ebx
lea eax, [ebp - 0x1c]
nop
sub esp, 4
mov dword [esp - 0x28], edi
mov dword [esp], 0x36c279f4
add dword [esp], 0x1f114263
add dword [esp], 0x21c83816
xchg edi, edi
xor dword [esp], 0x63f3889e
xor dword [esp], 0x15f7134a
sub dword [esp], 0x19f6fb5
push eax
xchg ecx, ecx
call fcn.00486d30
test al, al
je 0x43f639
xchg esi, esi
nop
sub esp, 4
mov dword [esp], 0x3ff9ef0f
add dword [esp], 0x1a1c860c
xchg esi, esi
xor dword [esp], 0x38a1dd69
add dword [esp], 0xdcbb8de
sub dword [esp], 0x23f4193d
sub dword [esp], 0x4c8f480f
mov dword [esp - 0x20], 0x361bc557
lea eax, [esi + 0x3c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00486d30
mov edi, edi
test al, al
je 0x43f639
mov esi, dword [esi + 0x20]
mov dword [esp - 0x24], 0x10e0392
and esi, 0x2000
mov dword [ebp - 0x18], 0x76cc74e6
xor dword [ebp - 0x18], 0x2669a402
xor dword [ebp - 0x18], 0x28b97e8
xchg esi, esi
xor dword [ebp - 0x18], 0x5a502d23
xor dword [ebp - 0x18], 0x6f35e3f5
sub dword [ebp - 0x18], 0x640af541
mov dword [esp - 0x28], 0x6f812561
xor dword [ebp - 0x18], 0x3409499
neg esi
sbb esi, esi
mov ebx, ebx
and esi, 0xffff0100
add esi, 0xffff
xor ecx, ecx
xchg edi, edi
mov dword [ebp - 8], ecx
lea ecx, [ecx]
mov eax, dword [ebp - 0xc]
nop
mov dword [esp - 0x18], 0x6d96e5ce
mov dword [esp - 4], 0x135ab91b
xor dword [esp - 4], 0x14390eb6
add dword [esp - 4], 0x71056b98
sub dword [esp - 4], 0x4dbb38d8
xchg esi, esi
add dword [esp - 4], 0x21e52d4e
sub dword [esp - 4], 0x4c9317ab
sub esp, 4
xchg esi, esi
mov eax, dword [eax + 0x38]
movups xmm0, xmmword [eax + ecx]
lea eax, [ebp - 0x60]
xorps xmm0, xmmword [0x4c55d0]
xchg esi, esi
lea ecx, [ebp - 0x28]
push eax
movaps xmmword [ebp - 0x60], xmm0
mov dword [esp - 0x34], 0x684a1d14
call fcn.00486d30
test al, al
je 0x43f639
mov eax, dword [ebp - 0x18]
mov dword [esp - 0x3c], ecx
mov ecx, dword [ebp - 8]
inc eax
add ecx, 0x10
mov esi, esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
cmp eax, esi
jb 0x43f178
mov edx, edx
mov eax, dword [ebp - 0xc]
mov esi, 0x1d9c080c
add esi, 0x472c60f
sub esi, 0x1d8349e8
mov dword [esp - 0x18], ebp
xor esi, 0x105d1cb2
add esi, 0x223974fe
xor esi, 0x3710f280
mov dword [esp - 0x28], 0x6314860e
mov ecx, 0x835d746
add ecx, 0x3f725ea0
xor ecx, 0x27e1e5ce
sub ecx, 0x494988c8
mov dword [esp - 0x18], 0x5515aa06
add ecx, 0x62c1c45b
sub ecx, 0x69c30479
sub ecx, 0xfff0643
mov dword [esp - 0x10], 0x5d6c5849
mov dword [ebp - 0x50], 0x3ab6d17b
xor dword [ebp - 0x50], 0xad9596c
xor dword [ebp - 0x50], 0x2718eef9
xor dword [ebp - 0x50], 0x7bd788d0
mov ebp, ebp
sub dword [ebp - 0x50], 0x186303b9
xor dword [ebp - 0x50], 0x543dea85
mov dword [ebp - 0x4c], 0x91a65e3
add dword [ebp - 0x4c], 0x58943268
mov dword [esp - 0x38], 0x37036929
xor dword [ebp - 0x4c], 0x1aab412
sub dword [ebp - 0x4c], 0x476222b9
xor dword [ebp - 0x4c], 0x18a209a0
mov dword [ebp - 0x48], 0x57278f65
xchg ebp, ebp
xor dword [ebp - 0x48], 0x5866112e
xor dword [ebp - 0x48], 0x3382c58d
xor dword [ebp - 0x48], 0x3492b2db
add dword [ebp - 0x48], 0x39398298
xchg esp, esp
add dword [ebp - 0x48], 0x1f830419
sub dword [ebp - 0x48], 0x610e6fce
test dword [eax + 0x20], 0x2000
pushf
mov ebx, ebx
mov dword [ebp - 0x44], 0x4fa9b0ae
xor dword [ebp - 0x44], 0x67d0219
sub dword [ebp - 0x44], 0x34bec7e1
xor dword [ebp - 0x44], 0x5589f2e5
xchg ebp, ebp
xor dword [ebp - 0x44], 0x409c1833
popf
cmovne esi, ecx
xchg esp, esp
je 0x43f396
nop
mov dword [esp - 4], 0x5c167ba4
xchg esi, esi
xor dword [esp - 4], 0x191b1392
sub dword [esp - 4], 0x3e365510
add dword [esp - 4], 0x5f970cfa
mov dword [esp - 0x2c], edi
sub dword [esp - 4], 0x666e2010
sub esp, 4
lea eax, [ebp - 0x50]
push eax
mov ebp, ebp
lea ecx, [ebp - 0x28]
call fcn.00486d30
test al, al
mov dword [esp - 0x10], 0x40e87cf4
je 0x43f639
inc esi
cmp esi, 0xffff
jb 0x43f33b
mov esp, esp
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x28]
imul eax, dword [ebp - 0x38]
mov dword [esp - 0x40], edi
shl eax, 2
push eax
push dword [ebp - 0x20]
call fcn.00486d30
mov dword [esp - 0x20], esi
test al, al
je 0x43f639
lea ecx, [ebp - 0x28]
mov ebx, ebx
call fcn.00486e40
lea ecx, [ebp - 0x28]
call fcn.00486430
lea eax, [ebp - 0x40]
mov dword [esp - 0x30], 0x5eff1242
push eax
lea ecx, [ebp - 0x38]
call fcn.00405a10
mov edx, edx
mov ecx, dword [ebp - 0xc]
push dword [eax]
call fcn.0043e360
xchg edx, edx
push eax
nop
mov dword [esp - 4], 0x39b770b3
sub dword [esp - 4], 0x34df4e65
mov dword [esp - 0x2c], 0xacb3301
add dword [esp - 4], 0x2dc3d5da
add dword [esp - 4], 0x4b2af22a
xor dword [esp - 4], 0x393c6862
add dword [esp - 4], 0x10960e69
mov dword [esp - 0x40], esi
xor dword [esp - 4], 0x1a44873c
sub esp, 4
mov ecx, edi
mov dword [esp - 0x20], 0x4d608cc6
call fcn.00488e80
cmp byte [ebp - 0x34], 0
je 0x43f461
push dword [ebp - 0x38]
mov dword [esp - 0x3c], 0x5f33ef9e
call fcn.00490c60
add esp, 4
push dword [ebp - 0x10]
mov ecx, edi
xchg ecx, ecx
nop
mov dword [esp - 4], 0xa6d2f64
xor dword [esp - 4], 0xb17fa93
mov ecx, ecx
add dword [esp - 4], 0x59a2759d
sub dword [esp - 4], 0x307f02d2
xor dword [esp - 4], 0xec49df2b
mov dword [esp - 0x38], 0x5c2d5b42
sub esp, 4
nop
mov dword [esp - 4], 0x1e5f7f87
add dword [esp - 4], 0xa26891c
mov dword [esp - 0x34], 0x18b70c3b
sub dword [esp - 4], 0x16112330
add dword [esp - 4], 0x50a1f77f
sub dword [esp - 4], 0x46c16170
mov dword [esp - 0x40], 0x29441537
add dword [esp - 4], 0xd2507fa
xor dword [esp - 4], 0x66ae94d9
sub esp, 4
xchg edi, edi
call fcn.00488e10
mov ecx, edi
call fcn.00488880
mov esp, esp
test al, al
jne 0x43f641
mov ecx, dword [ebp - 0x2c]
xchg ebx, ebx
lea eax, [ebp - 0x30]
cmp ecx, 2
mov dword [ebp - 0x18], ecx
xchg ecx, ecx
cmova eax, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
lea eax, [ecx + 1]
mov dword [esp - 0x14], 0x44d65ffe
mov ecx, 0x1970fd3b
add ecx, 0x4585602b
xor ecx, 0x7b798fca
add ecx, 0x22eb1612
mov dword [esp - 0xc], 0x2ce83230
xor ecx, 0x6317755e
xor ecx, 0x216e0165
sub ecx, 0xa039c83
mul ecx
mov dword [esp - 0x2c], 0x3d463a0
pushf
mov ecx, 0x6e102c33
sub ecx, 0x21bc076e
sub ecx, 0x2e6f2995
mov dword [esp - 0x38], 0x7e009ce
add ecx, 0x22a9254a
add ecx, 0xbf71df85
popf
mov dword [esp - 0x40], 0x3316b1df
cmovb eax, ecx
push eax
call fcn.00490c90
mov esi, eax
xchg ebx, ebx
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
xchg ebx, ebx
test eax, eax
je 0x43f60e
sub dword [ebp - 0x10], esi
mov edx, esi
mov edx, edx
mov edi, dword [ebp - 0x10]
xor esi, esi
lea esp, [esp]
mov ecx, esi
mov edi, edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0xca8aa6e
xchg ecx, ecx
xor eax, 0x25572537
sub eax, 0x23405720
add eax, 0x245b9680
add eax, 0x6cdd2b
mov dword [esp - 0x2c], esp
add eax, 0x5022990d
shl ecx, 3
inc esi
mov edi, edi
sar eax, cl
cbw
xor ax, word [edx + edi - 2]
xchg ecx, ecx
mov word [edx - 2], ax
mov eax, dword [ebp - 0x18]
cmp esi, eax
xchg edx, edx
jb 0x43f5bc
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
xor ecx, ecx
mov dword [esp - 0x30], esi
mov word [esi + eax*2], cx
mov eax, dword [0x4c0a20]
xor eax, dword [0x4c0968]
push esi
mov dword [esp - 0x3c], ebx
call eax
push esi
call fcn.00490c60
add esp, 4
mov dword [esp - 0x20], esp
jmp 0x43f641
lea ecx, [ebp - 0x28]
call fcn.00486430
mov ecx, edi
call fcn.00487a70
xchg esp, esp
nop
mov dword [esp - 4], 0x756fd9ec
sub dword [esp - 4], 0x2904c4c2
mov dword [esp - 0x20], 0x3d1fe1d4
add dword [esp - 4], 0xaf2a97d
sub dword [esp - 4], 0x37dce52a
add dword [esp - 4], 0x42268944
sub dword [esp - 4], 0xe7fae92
mov esi, esi
sub dword [esp - 4], 0x5327b417
sub esp, 4
push edi
call fcn.00490c70
mov ebp, ebp
add esp, 8
cmp dword [ebp - 0x2c], 2
jbe 0x43f6ae
xchg esp, esp
push dword [ebp - 0x30]
call fcn.00490c60
add esp, 4
cmp dword [ebp - 0x3c], 2
xchg ecx, ecx
jbe 0x43f6c9
push dword [ebp - 0x40]
call fcn.00490c60
mov dword [esp - 0x28], 0x395d0e16
add esp, 4
mov al, 0xc
add al, 0x52
mov dword [esp - 0x14], esp
sub al, 0x53
add al, 0x29
xor al, 0x78
sub al, 0x4b
mov esp, esp
pop edi
pop esi
mov esp, ebp
pop ebp
mov dword [esp - 0x18], edx
mov esp, ebx
pop ebx
ret 4
test edi, edi
je 0x43f740
mov ecx, edi
mov edx, edx
call fcn.00487a70
nop
sub esp, 4
mov dword [esp], 0x135924cc
mov dword [esp - 0x18], 0x14346aac
add dword [esp], 0x1403714c
add dword [esp], 0x44c0685f
sub dword [esp], 0x9b39548
xchg edi, edi
sub dword [esp], 0x3812787
sub dword [esp], 0x5ee84190
push edi
call fcn.00490c70
mov dword [esp - 0x30], 0x2fd3836f
add esp, 8
pop edi
xor al, al
pop esi
mov dword [esp - 0x24], ebx
mov esp, ebp
pop ebp
mov esp, ebx
xchg ecx, ecx
pop ebx
ret 4