Function at 0x40ccdf
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x430
mov esi, esp
mov edi, dword [ebp + 8]
push eax
sub esp, 0x34
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x1c], esp
mov eax, dword [0x43ff94]
mov dword [esi + 0x10], eax
mov dword [esi + 0x28], 0x1b8d19ad
mov dword [esi + 0x2c], 0x7af059e
mov dword [esi + 0x30], 0x3960194
mov dword [esi + 0x34], 0xf590dad
mov dword [esi + 0x38], 0xb5c0955
mov dword [esi + 0x3c], 0x77167524
mov dword [esi + 0x40], 0x73cd7118
mov dword [esi + 0x44], 0x7fe87dd5
mov dword [esi + 0x48], 0x7bed79d4
mov dword [esi + 0x4c], 0x67f565fb
mov dword [esi + 0x50], 0x63d46100
mov dword [esi + 0x54], 0x6f0e6dd0
mov dword [esi + 0x58], 0x6b3a6939
mov dword [esi + 0x5c], 0x57065502
mov dword [esi + 0x60], 0x5332510b
mov dword [esi + 0x64], 0x5ff75de3
mov dword [esi + 0x68], 0x5b0459ce
mov dword [esi + 0x6c], 0x471d4518
mov dword [esi + 0x70], 0x43da4120
mov dword [esi + 0x74], 0x4f124d12
mov dword [esi + 0x78], 0x4b2a4921
mov dword [esi + 0x7c], 0xb726b5f5
mov dword [esi + 0x80], 0xb326b120
mov dword [esi + 0x84], 0xbf01bd11
mov dword [esi + 0x88], 0xbb18b915
mov dword [esi + 0x8c], 0xa70fa5ef
mov dword [esi + 0x90], 0xa3f5a13c
mov dword [esi + 0x94], 0xaffdadf1
mov dword [esi + 0x98], 0xabfca9f7
mov dword [esi + 0x9c], 0x97c895c7
mov dword [esi + 0xa0], 0x93fa91f0
mov dword [esi + 0xa4], 0x9fd69dd7
mov dword [esi + 0xa8], 0x9b2f9924
mov dword [esi + 0xac], 0x87d28530
mov dword [esi + 0xb0], 0x831681e0
mov dword [esi + 0xb4], 0x8f258d25
mov dword [esi + 0xb8], 0x8bea8925
mov dword [esi + 0xbc], 0xf75bf5bb
mov dword [esi + 0xc0], 0xf359f153
mov dword [esi + 0xc4], 0xff97fd6b
mov dword [esi + 0xc8], 0xfbb9f998
mov dword [esi + 0xcc], 0xe774e54c
mov dword [esi + 0xd0], 0xe377e177
mov dword [esi + 0xd4], 0xefb9ed41
mov dword [esi + 0xd8], 0xebbbe9b9
mov dword [esi + 0xdc], 0xd780d58d
mov dword [esi + 0xe0], 0xd384d180
mov dword [esi + 0xe4], 0xdf88dd8c
mov dword [esi + 0xe8], 0xdbbad988
mov dword [esi + 0xec], 0xc767c577
mov dword [esi + 0xf0], 0xc363c16e
mov dword [esi + 0xf4], 0xcf67cd5e
mov dword [esi + 0xf8], 0xcb97c99f
mov dword [esi + 0xfc], 0x37693567
mov dword [esi + 0x100], 0x33613166
mov dword [esi + 0x104], 0x3f3e3d62
mov word [esi + 0x10c], 0
mov dword [esi + 0x108], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xe5
ja 0x40c1fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x28]
mov eax, 0x53
sub eax, ecx
add ecx, 0x2d9e01ac
xor eax, ecx
and eax, edx
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x4c
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe6
jb 0x40c1c0
lea eax, [esi + 0x28]
push 0
push 0
push 0
push 0
push eax
call dword [esi + 0x10]
mov edx, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x43bb34]
xor ebx, ebx
xor eax, eax
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
setne al
xor edi, edi
jmp dword [eax*4 + 0x43bc04]
mov dword [ecx], ebx
jmp case.0x40c212.54
mov dword [esi + 0x10], edx
jmp dword [0x43bb40]
push 0
push 0x1bb
push edi
push edx
call dword [0x43ff98]
mov edx, dword [esi + 0x10]
push 0
push 0x1bb
push edi
push edx
call dword [0x43ff98]
mov edx, dword [esi + 0x10]
jmp dword [0x43bb48]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43bb4c]
xor edi, edi
xor ebx, ebx
jmp 0x40c51a
mov ecx, dword [0x43ff9c]
mov dword [esi + 8], ecx
mov dword [esi + 0x28], 0x5b8d5988
mov dword [esi + 0x2c], 0x57fa5587
mov word [esi + 0x30], 0x5150
mov dword [esi + 0x32], 0
mov word [esi + 0x36], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0xf
ja 0x40c2f9
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [esi + edi + 0x28]
mov ecx, 0xcb
sub ecx, edx
add edx, 0x4cc23334
xor ecx, edx
and ecx, edi
xor ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
add cl, 0x94
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x10
jb 0x40c2c0
push 0x800000
push 0
push 0
push 0
push dword [ebp + 0xc]
lea ecx, [esi + 0x28]
push ecx
mov dword [esi + 0x20], eax
push eax
call dword [esi + 8]
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43bb54]
xor edi, edi
xor ebx, ebx
jmp 0x40c50e
movzx eax, byte [0x4400cc]
jmp dword [eax*4 + 0x43bb5c]
mov dword [esi + 8], 0
mov ecx, dword [ebp + 0x10]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
mov edx, dword [ebp + 0x18]
push edx
push edx
push dword [ebp + 0x14]
push eax
push ecx
push edi
call dword [0x43ffac]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43bb74]
push 0
push edi
call dword [0x43ffb0]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 8], 0
xor ebx, ebx
jmp dword [ecx*4 + 0x43bb7c]
mov dword [esi + 0x14], edi
mov eax, dword [esi + 0x18]
mov dword [eax], 0
mov eax, dword [case.0x40c212.26]
xor edi, edi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add eax, edi
inc eax
push eax
push ebx
call fcn.004336c0
add esp, 8
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43bbac]
mov ecx, dword [esi + 0x1c]
mov edi, dword [esi + 8]
jmp dword [0x43bbc8]
mov eax, dword [case.0x40c212.35]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, 1
mov ecx, dword [case.0x40c212.43]
mov edi, dword [esi + 8]
jmp case.0x40c212.40
jmp dword [edx*4 + 0x43bbe4]
mov dword [esi + 0x24], eax
mov dword [ecx], 0
add eax, edi
push ecx
mov ecx, dword [esi + 0x18]
push dword [ecx]
push eax
push dword [esi + 0x14]
call dword [0x43ffb8]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], 0
lea edx, [eax + edi]
push ecx
mov ecx, dword [esi + 0x18]
push dword [ecx]
push edx
push dword [esi + 0x14]
mov ebx, eax
call dword [0x43ffb8]
mov eax, ebx
mov ecx, dword [esi + 0x1c]
jmp dword [0x43bbd0]
add edi, dword [ecx]
xor edx, edx
mov ecx, dword [case.0x40c212.43]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov dword [esi + 8], edi
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
call dword [0x43ffb4]
test eax, eax
setne cl
mov eax, dword [edi]
mov edi, dword [esi + 8]
test eax, eax
setne dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x43bba4]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43bbec]
jmp dword [0x43bbf8]
mov byte [ebx + edi], 0
jmp dword [0x43bc00]
mov byte [ebx + edi], 0
mov byte [ebx + edi], 0
jmp dword [0x43bc00]
mov dword [esi + 8], edi
mov edi, dword [esi + 0x14]
push edi
call dword [0x43ffc0]
mov edi, dword [esi + 8]
push dword [esi + 0x20]
call dword [0x43ffc0]
mov edx, dword [esi + 0x10]
push edx
call dword [0x43ffc0]
xor eax, eax
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x43bc04]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43bc0c]
jmp dword [0x43bc18]
push ebx
call fcn.00431b40
add esp, 4
nop
push ebx
call fcn.00431b40
add esp, 4
jmp dword [0x43bc20]
jmp dword [0x43bc30]
xor eax, eax
mov ecx, dword [ebp + 0x20]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x43bc34]
mov dword [ecx], edi
test ebx, ebx
setne al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x43bb64]
mov dword [ebx], 0x73816dab
mov dword [ebx + 4], 0x77997183
mov dword [ebx + 8], 0x7b9f759d
mov dword [ebx + 0xc], 0x7f5e7946
mov dword [ebx + 0x10], 0x3e17d9f
mov dword [ebx + 0x14], 0x7ec01e7
mov dword [ebx + 0x18], 0xbe705e7
mov dword [ebx + 0x1c], 0xfed09f3
mov dword [ebx + 0x20], 0x13eb0dea
mov dword [ebx + 0x24], 0x172b11e0
mov word [ebx + 0x28], 0x1514
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x2d], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x30
ja 0x40c635
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
mov edx, 0x51
sub edx, eax
add eax, 0xf02389ae
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0xc]
add al, 0x3e
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x31
jb 0x40c600
movzx eax, word [ebx]
test ax, ax
lea edx, [esi + 0x28]
je 0x40c661
lea ecx, [ebx + 2]
lea edx, [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c650
mov word [edx], 0
movzx eax, word [0x4400ce]
test ax, ax
je 0x40c695
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx + ecx], ax
movzx eax, word [ecx + 0x4400d0]
add ecx, 2
test ax, ax
jne 0x40c680
add edx, ecx
mov word [edx], 0
lea eax, [esi + 0x28]
push 0x20000000
push 0xffffffffffffffff
push eax
push edi
call dword [0x43ffa8]
jmp case.0x40c31b.4
mov word [eax], 0
lea eax, [esi + 0x28]
push 0x20000000
push 0xffffffffffffffff
push eax
push edi
call dword [0x43ffa8]
jmp dword [0x43bb70]
mov dword [ebx], 0x73816dab
mov dword [ebx + 4], 0x77997183
mov dword [ebx + 8], 0x7b9f759d
mov dword [ebx + 0xc], 0x7f5e7946
mov dword [ebx + 0x10], 0x3e17d9f
mov dword [ebx + 0x14], 0x7ec01e7
mov dword [ebx + 0x18], 0xbe705e7
mov dword [ebx + 0x1c], 0xfed09f3
mov dword [ebx + 0x20], 0x13eb0dea
mov dword [ebx + 0x24], 0x172b11e0
mov word [ebx + 0x28], 0x1514
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x2d], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x30
ja 0x40c775
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
mov ecx, 0x51
sub ecx, eax
add eax, 0xf02389ae
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
add al, 0x3e
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x31
jb 0x40c740
movzx ecx, word [ebx]
test cx, cx
je 0x40c7b0
lea edx, [ebx + 2]
lea eax, [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40c790
jmp 0x40c7b3
lea eax, [esi + 0x28]
mov word [eax], 0
movzx ecx, word [0x4400ce]
test cx, cx
je 0x40c6b0
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x4400d0]
add edx, 2
test cx, cx
jne 0x40c7d0
add eax, edx
jmp 0x40c6b0
push eax
sub esp, 0xe4
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [0x43ff94]
mov dword [eax], 0xeb2595c5
mov dword [eax + 4], 0xef57e964
mov dword [eax + 8], 0xe350ed52
mov dword [eax + 0xc], 0xe791e145
mov dword [eax + 0x10], 0xfb96e5ad
mov dword [eax + 0x14], 0xff98f98a
mov dword [eax + 0x18], 0xf355fd86
mov dword [eax + 0x1c], 0xf742f14d
mov dword [eax + 0x20], 0xcb45f552
mov dword [eax + 0x24], 0xcf7dc943
mov dword [eax + 0x28], 0xc39ecdae
mov dword [eax + 0x2c], 0xc7a0c196
mov dword [eax + 0x30], 0xdbb4c5b1
mov dword [eax + 0x34], 0xdfa8d9a8
mov dword [eax + 0x38], 0xd3bcdd93
mov dword [eax + 0x3c], 0xd76fd17b
mov dword [eax + 0x40], 0x2b9ed564
mov dword [eax + 0x44], 0x2f65295e
mov dword [eax + 0x48], 0x23a42d4e
mov dword [eax + 0x4c], 0x27542168
mov dword [eax + 0x50], 0x3b442559
mov dword [eax + 0x54], 0x3f88397d
mov dword [eax + 0x58], 0x33803d8e
mov dword [eax + 0x5c], 0x37993189
mov dword [eax + 0x60], 0xb92358d
mov dword [eax + 0x64], 0xfb70957
mov dword [eax + 0x68], 0x37d0dba
mov dword [eax + 0x6c], 0x7750149
mov dword [eax + 0x70], 0x1b76054f
mov dword [eax + 0x74], 0x1f52196f
mov dword [eax + 0x78], 0x13641d7e
mov dword [eax + 0x7c], 0x1748114f
mov dword [eax + 0x80], 0x6b471542
mov dword [eax + 0x84], 0x6f146936
mov dword [eax + 0x88], 0x63d06d0e
mov dword [eax + 0x8c], 0x67dd61dd
mov dword [eax + 0x90], 0x7b0465dd
mov dword [eax + 0x94], 0x7fc37923
mov dword [eax + 0x98], 0x73c17ddb
mov dword [eax + 0x9c], 0x770f71c3
mov dword [eax + 0xa0], 0x4b317516
mov dword [eax + 0xa4], 0x4ffe49f2
mov dword [eax + 0xa8], 0x43ff4dff
mov dword [eax + 0xac], 0x473141f9
mov dword [eax + 0xb0], 0x5b334531
mov dword [eax + 0xb4], 0x5f2a5915
mov dword [eax + 0xb8], 0x532e5d2e
mov dword [eax + 0xbc], 0x57225122
mov dword [eax + 0xc0], 0xab345526
mov dword [eax + 0xc4], 0xaf0fa9ff
mov dword [eax + 0xc8], 0xa30bad14
mov dword [eax + 0xcc], 0xa71fa114
mov dword [eax + 0xd0], 0xbbefa5d7
mov dword [eax + 0xd4], 0xbff1b9cf
mov dword [eax + 0xd8], 0xb3c9bdcc
mov dword [eax + 0xdc], 0xb7b0b1f8
mov dword [eax + 0xe0], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0xe3
ja 0x40ca4a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [eax + edi]
mov ebx, 0x42
sub ebx, edx
add edx, 0x7c9b8bd
xor ebx, edx
and ebx, edi
xor ebx, edx
mov dword [esi + 0xc], ebx
mov edx, dword [esi + 0xc]
add dl, 0xd5
mov edi, dword [esi + 4]
mov byte [eax + edi], dl
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0xe4
jb 0x40ca10
push 0
push 0
push 0
push 0
push eax
call ecx
jmp case.0x40c212.66
push 0
push 0
push 0
push 0
push eax
call dword [esi + 8]
jmp dword [0x43bc48]
push eax
sub esp, 0xe4
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 0x14
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x1fc
mov dword [esi + 0x14], esp
sub esp, 0x38
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x10], ecx
mov esp, ecx
push eax
mov dword [esi + 0x24], esp
mov ecx, dword [0x43ff94]
mov dword [esi + 8], ecx
mov dword [eax], 0xeb2595c5
mov dword [eax + 4], 0xef57e964
mov dword [eax + 8], 0xe350ed52
mov dword [eax + 0xc], 0xe791e145
mov dword [eax + 0x10], 0xfb96e5ad
mov dword [eax + 0x14], 0xff98f98a
mov dword [eax + 0x18], 0xf355fd86
mov dword [eax + 0x1c], 0xf742f14d
mov dword [eax + 0x20], 0xcb45f552
mov dword [eax + 0x24], 0xcf7dc943
mov dword [eax + 0x28], 0xc39ecdae
mov dword [eax + 0x2c], 0xc7a0c196
mov dword [eax + 0x30], 0xdbb4c5b1
mov dword [eax + 0x34], 0xdfa8d9a8
mov dword [eax + 0x38], 0xd3bcdd93
mov dword [eax + 0x3c], 0xd76fd17b
mov dword [eax + 0x40], 0x2b9ed564
mov dword [eax + 0x44], 0x2f65295e
mov dword [eax + 0x48], 0x23a42d4e
mov dword [eax + 0x4c], 0x27542168
mov dword [eax + 0x50], 0x3b442559
mov dword [eax + 0x54], 0x3f88397d
mov dword [eax + 0x58], 0x33803d8e
mov dword [eax + 0x5c], 0x37993189
mov dword [eax + 0x60], 0xb92358d
mov dword [eax + 0x64], 0xfb70957
mov dword [eax + 0x68], 0x37d0dba
mov dword [eax + 0x6c], 0x7750149
mov dword [eax + 0x70], 0x1b76054f
mov dword [eax + 0x74], 0x1f52196f
mov dword [eax + 0x78], 0x13641d7e
mov dword [eax + 0x7c], 0x1748114f
mov dword [eax + 0x80], 0x6b471542
mov dword [eax + 0x84], 0x6f146936
mov dword [eax + 0x88], 0x63d06d0e
mov dword [eax + 0x8c], 0x67dd61dd
mov dword [eax + 0x90], 0x7b0465dd
mov dword [eax + 0x94], 0x7fc37923
mov dword [eax + 0x98], 0x73c17ddb
mov dword [eax + 0x9c], 0x770f71c3
mov dword [eax + 0xa0], 0x4b317516
mov dword [eax + 0xa4], 0x4ffe49f2
mov dword [eax + 0xa8], 0x43ff4dff
mov dword [eax + 0xac], 0x473141f9
mov dword [eax + 0xb0], 0x5b334531
mov dword [eax + 0xb4], 0x5f2a5915
mov dword [eax + 0xb8], 0x532e5d2e
mov dword [eax + 0xbc], 0x57225122
mov dword [eax + 0xc0], 0xab345526
mov dword [eax + 0xc4], 0xaf0fa9ff
mov dword [eax + 0xc8], 0xa30bad14
mov dword [eax + 0xcc], 0xa71fa114
mov dword [eax + 0xd0], 0xbbefa5d7
mov dword [eax + 0xd4], 0xbff1b9cf
mov dword [eax + 0xd8], 0xb3c9bdcc
mov dword [eax + 0xdc], 0xb7b0b1f8
mov dword [eax + 0xe0], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0xe3
ja 0x40ca60
nop
nop
mov edx, dword [esi + 4]
mov ebx, dword [esi + 4]
movzx ecx, byte [eax + ebx]
mov ebx, 0x42
sub ebx, edx
add edx, 0x7c9b8bd
xor ebx, edx
and ebx, ecx
xor ebx, edx
mov dword [esi + 0xc], ebx
mov ecx, dword [esi + 0xc]
add cl, 0xd5
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xe4
jb 0x40cca0
jmp 0x40ca60
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esi + 8], 0
jmp dword [eax*4 + 0x43bc4c]
push 0
push 0x1bb
push 0x43ffc8
push ebx
call dword [0x43ff98]
xor ecx, ecx
mov dword [esi + 0x20], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43bc54]
mov dword [esi + 8], 0
jmp dword [0x43bc9c]
mov dword [esi + 0x18], ebx
mov eax, dword [0x43ff9c]
mov dword [edi], 0x8b598d5c
mov dword [edi + 4], 0x876a8967
mov word [edi + 8], 0x8584
mov dword [edi + 0xa], 0
mov dword [edi + 0xe], 0
mov dword [edi + 0x12], 0
mov word [edi + 0x16], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x17
ja 0x40cda7
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
mov ebx, 0xbd
sub ebx, ecx
add ecx, 0xe7865042
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov dword [esi + 0xc], ebx
mov ecx, dword [esi + 0xc]
add cl, 0x32
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x18
jb 0x40cd70
push 0x800000
push 0
push 0
push 0
push dword [ebp + 8]
push edi
push dword [esi + 0x20]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43bc5c]
mov dword [esi + 8], 0
mov ebx, dword [esi + 0x18]
jmp 0x40d030
xor edx, edx
mov ecx, dword [ebp + 0x20]
test ecx, ecx
setg dl
mov dword [esi + 0x1c], eax
jmp dword [edx*4 + 0x43bc64]
movzx eax, byte [0x4400cc]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [esi + 0x18]
jmp dword [eax*4 + 0x43bc6c]
push ecx
push ecx
push ecx
push ecx
push eax
call dword [0x43ffa4]
movzx eax, byte [0x4400cc]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [esi + 0x18]
jmp dword [eax*4 + 0x43bc6c]
mov edx, dword [esi + 0x10]
mov dword [edx], 0x43d14d0b
mov dword [edx + 4], 0x47d941d3
mov dword [edx + 8], 0xbb1f45dd
mov dword [edx + 0xc], 0xbfdeb9f6
mov dword [edx + 0x10], 0xb311bd1f
mov dword [edx + 0x14], 0xb72cb117
mov dword [edx + 0x18], 0xab37b517
mov dword [edx + 0x1c], 0xaf0da923
mov dword [edx + 0x20], 0xa32bad0a
mov dword [edx + 0x24], 0xa7eba130
mov word [edx + 0x28], 0xa5a4
mov dword [edx + 0x2a], 0
mov dword [edx + 0x2e], 0
mov dword [edx + 0x32], 0
mov word [edx + 0x36], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x37
ja 0x40ced8
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 9
sub edx, eax
add eax, 0xd7d7f6
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
add al, 0x46
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x38
jb 0x40cea0
jmp dword [0x43bc74]
movzx eax, word [edx]
mov ecx, dword [esi + 0x14]
test ax, ax
je 0x40cf11
mov ecx, dword [esi + 0x10]
lea edx, [ecx + 2]
mov ecx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x40cf00
mov word [ecx], 0
mov edx, dword [esi + 0x10]
jmp case.0x40cdc2.6
mov word [eax], 0
mov edx, dword [esi + 0x10]
jmp dword [0x43bc7c]
movzx ecx, word [edx]
mov eax, dword [esi + 0x14]
test cx, cx
je 0x40cf20
mov eax, dword [esi + 0x10]
lea edx, [eax + 2]
mov eax, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40cf50
jmp 0x40cf20
movzx ecx, word [0x4400ce]
test cx, cx
je 0x40cf95
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x4400d0]
add edx, 2
test cx, cx
jne 0x40cf80
add eax, edx
mov word [eax], 0
push 0x20000000
push 0xffffffffffffffff
push dword [esi + 0x14]
push dword [esi + 0x1c]
call dword [0x43ffa8]
xor eax, eax
mov edx, dword [ebp + 0xc]
mov ecx, edx
neg ecx
sbb eax, eax
push 0
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push edx
mov edi, dword [esi + 0x1c]
push edi
call dword [0x43ffac]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43bc84]
mov dword [esi + 8], 0
jmp 0x40d029
mov eax, dword [esi + 0x24]
mov dword [eax], 0
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
call dword [0x43ffbc]
xor ecx, ecx
test eax, eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x43bc8c]
push 0
push edi
call dword [0x43ffb0]
xor ecx, ecx
test eax, eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x43bc94]
mov al, 1
mov dword [esi + 8], eax
push edi
call dword [0x43ffc0]
push dword [esi + 0x20]
call dword [0x43ffc0]
jmp dword [0x43bc9c]
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call dword [0x43ffc0]
push ebx
call dword [0x43ffc0]
jmp dword [0x43bca4]
ret 0x40
ret