Function at 0x43b4dc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov ebx, dword [ebp + 8]
movzx eax, word [ebx]
mov dword [esp + 0x20], 0xf3f233c1
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x2c], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x43a3d6
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + 0xbe]
mov edi, 0xe0de0e41
sub edi, ecx
or edi, edx
not edx
or edx, esi
add edi, edx
mov ecx, 0xfffffffe
sub ecx, edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov edx, ecx
xor edx, 0xcd
and ecx, 0x4d
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb case.default.0x43a3e1
xor ecx, ecx
cmp dword [esp + 0x20], eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x446de8]
jmp dword [0x446df0]
xor edx, edx
cmp ecx, dword [esp + 0x20]
setne dl
mov ecx, edx
xor edx, edx
jmp dword [ecx*4 + 0x446e00]
xor ecx, ecx
cmp dword [ebx + eax + 0x7c], 0
sete cl
xor edx, edx
jmp dword [ecx*4 + 0x446e08]
mov ecx, dword [ebx + eax + 0x78]
xor eax, eax
test ecx, ecx
sete al
xor edx, edx
mov dword [esp + 0xc], ecx
jmp dword [eax*4 + 0x446e10]
mov eax, dword [ebx + ecx + 0x20]
add eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [ebx + ecx + 0x24]
add eax, ebx
mov dword [esp + 0x40], eax
mov eax, dword [ebx + ecx + 0x1c]
add eax, ebx
mov dword [esp + 0x3c], eax
mov edx, ebx
mov ebx, dword [0x4489e4]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x446e18]
mov edi, dword [0x4489e0]
mov eax, dword [edx + ecx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x43a47e
shl eax, 3
mov ecx, eax
push ecx
call fcn.00408c90
add esp, 4
mov esi, eax
lea ecx, [edi*8]
lea edx, [ebx + edi*8]
cmp eax, ebx
jbe 0x43a57e
cmp edx, esi
jbe 0x43a57e
test ecx, ecx
je 0x43a4ff
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ecx - 1]
mov byte [esi + ecx - 1], dl
movzx edx, byte [ebx + ecx - 2]
mov byte [esi + ecx - 2], dl
movzx edx, byte [ebx + ecx - 3]
mov byte [esi + ecx - 3], dl
movzx edx, byte [ebx + ecx - 4]
mov byte [esi + ecx - 4], dl
movzx edx, byte [ebx + ecx - 5]
mov byte [esi + ecx - 5], dl
movzx edx, byte [ebx + ecx - 6]
mov byte [esi + ecx - 6], dl
movzx edx, byte [ebx + ecx - 7]
mov byte [esi + ecx - 7], dl
movzx edx, byte [ebx + ecx - 8]
mov byte [esi + ecx - 8], dl
add eax, 0xfffffff8
mov ecx, eax
jne 0x43a4b0
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x446e20]
push ebx
call fcn.00408ca0
add esp, 4
mov dword [0x4489e4], esi
xor edx, edx
xor eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
mov dword [esp + 0x10], 0
jmp dword [eax*4 + 0x446e28]
mov eax, esi
add eax, ecx
shr ecx, 2
mov edi, esi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ebx, dword [0x4489e4]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x446e20]
mov dword [0x4489e4], esi
xor edx, edx
xor eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
mov dword [esp + 0x10], 0
jmp dword [eax*4 + 0x446e28]
mov edx, dword [esp + 0x14]
inc edx
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x446e28]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
mov eax, dword [eax + edx*4]
add eax, ebx
mov edx, 0xffffffff
xor esi, esi
nop
nop
nop
mov ecx, esi
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
lea esi, [esi + 1]
jne 0x43a610
mov dword [esp + 8], eax
mov edi, 0xdca9bcf
test edx, edx
je 0x43a6a1
mov esi, dword [esp + 8]
cmp edx, 4
jb 0x43a67a
mov ebx, ecx
and ebx, 0xfffffffc
mov esi, dword [esp + 8]
nop
nop
movsx eax, byte [esi]
xor eax, edi
imul eax, eax, 0x1000193
movsx edi, byte [esi + 1]
xor edi, eax
imul eax, edi, 0x1000193
movsx edi, byte [esi + 2]
xor edi, eax
imul eax, edi, 0x1000193
movsx edi, byte [esi + 3]
add esi, 4
xor edi, eax
imul edi, edi, 0x1000193
add ebx, 0xfffffffc
jne 0x43a640
mov ebx, dword [ebp + 8]
test dl, 3
je 0x43a6a1
and ecx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [esi + edx]
xor eax, edi
imul edi, eax, 0x1000193
inc edx
cmp ecx, edx
jne 0x43a690
xor eax, eax
cmp dword [0x4489e8], 0
sete al
jmp dword [eax*4 + 0x446e30]
xor eax, eax
cmp edi, 0xc67cc347
sete al
jmp dword [eax*4 + 0x446e38]
xor ecx, ecx
mov eax, dword [esp + 8]
cmp byte [eax], 0x4e
setne cl
jmp dword [ecx*4 + 0x446e40]
xor ecx, ecx
cmp byte [eax + 1], 0x74
setne cl
jmp dword [ecx*4 + 0x446e48]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + eax*4]
add esi, ebx
mov dword [esp + 0x1c], 0xffffffff
xor ecx, ecx
xor eax, eax
cmp ecx, 0x20
setl al
mov dword [esp + 0x44], esi
jmp dword [eax*4 + 0x446e50]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x50]
jmp dword [eax*4 + 0x446e88]
xor eax, eax
cmp ecx, 0x20
setl al
jmp dword [eax*4 + 0x446e50]
mov dword [esp + 8], ecx
lea eax, [esi + ecx]
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00401000
add esp, 8
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x38]
mov edx, ecx
shr edx, 0xa
and edx, 4
mov dword [esp + 0x50], 1
jmp dword [edx + 0x446e58]
movzx ebx, byte [esp + 0x26]
xor edx, edx
cmp bl, 0xc2
sete dl
jmp dword [edx*4 + 0x446e60]
mov edx, ecx
xor edx, 8
lea esi, [edx + edx]
not esi
add esi, edx
mov edx, ecx
or edx, 8
xor eax, eax
test esi, edx
mov esi, dword [esp + 0x44]
setne al
jmp dword [eax*4 + 0x446e68]
xor edx, edx
cmp bl, 0xc3
sete dl
jmp dword [edx*4 + 0x446e70]
xor edx, edx
cmp bl, 0xb8
sete dl
jmp dword [edx*4 + 0x446e78]
shr ecx, 2
and ecx, 4
jmp dword [ecx + 0x446e80]
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x4c]
xor eax, eax
jmp dword [eax*4 + 0x446e88]
mov eax, 1
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 8]
jmp dword [eax*4 + 0x446e88]
xor eax, eax
cmp dword [esp + 0x1c], 0xffffffff
setne al
jmp dword [eax*4 + 0x446e90]
xor eax, eax
xor edx, edx
cmp eax, dword [0x4489e0]
setb dl
xor ecx, ecx
jmp dword [edx*4 + 0x446e98]
mov ecx, dword [esp + 0x1c]
mov dword [edx + eax*8 + 4], ecx
mov cl, 1
xor edx, edx
jmp dword [edx*4 + 0x446ea8]
inc eax
xor edx, edx
cmp eax, dword [0x4489e0]
setb dl
jmp dword [edx*4 + 0x446e98]
mov edx, dword [0x4489e4]
xor ebx, ebx
cmp dword [edx + eax*8], edi
sete bl
jmp dword [ebx*4 + 0x446ea0]
mov edx, 1
jmp dword [edx*4 + 0x446ea8]
and cl, 1
movzx eax, cl
mov cl, 1
mov dword [esp + 0x10], ecx
jmp dword [eax*4 + 0x446eb0]
mov eax, dword [0x4489e0]
lea ecx, [eax + 1]
mov dword [0x4489e0], ecx
mov ecx, dword [0x4489e4]
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax*8 + 4], edx
mov dword [ecx + eax*8], edi
mov al, 1
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
inc edx
xor eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x446e28]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + eax*4]
mov dword [0x4489e8], eax
inc edx
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x446e28]
mov edx, dword [esp + 0x14]
inc edx
xor eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x446e28]
mov edx, dword [esp + 0x10]
and dl, 1
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx + 0x3c]
mov ecx, dword [ebx + eax]
mov dword [esp + 0x20], 0x83805e56
mov dword [esp + 0x24], 0
mov word [esp + 0x28], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 9
ja 0x43a9a1
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x20]
lea edi, [edx + 0xeb]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0xc0656beb
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
add dl, 0x93
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x20], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xa
jb 0x43a960
jmp dword [0x446dfc]
mov dword [esp + 0x20], 0x83805e56
mov dword [esp + 0x24], 0
mov word [esp + 0x28], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja case.0x43a3e1.2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + 0xeb]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xc0656beb
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x93
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x43a9e0
jmp case.0x43a3e1.2
mov esi, dword [esi]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x43ac75
mov ecx, dword [eax + 8]
movzx eax, word [ecx]
mov dword [esp + 8], 0x53508b81
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 8
ja 0x43acdc
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
lea edi, [edx - 0x758e344d]
and edi, esi
add edx, esi
add edx, 0x8a71cbb3
add edi, edi
sub edx, edi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0x1b
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 9
jb 0x43aca0
xor edx, edx
cmp dword [esp + 8], eax
sete dl
jmp dword [edx*4 + 0x4473d8]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + eax]
mov dword [esp + 8], 0x1b1a6468
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 0xc
ja 0x43ad57
nop
nop
mov esi, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
lea ebx, [esi + 0xc8bff04]
add esi, 4
and esi, edi
or ebx, edi
sub ebx, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
add bl, 0xe4
mov esi, dword [esp]
mov byte [esp + esi + 8], bl
inc dword [esp]
mov esi, dword [esp]
cmp esi, 0xd
jb 0x43ad20
xor ebx, ebx
cmp edx, dword [esp + 8]
sete bl
jmp dword [ebx*4 + 0x4473e0]
mov esi, dword [case.0x43ad60.4]
xor ecx, ecx
mov edx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
mov esi, dword [case.0x43ad60.4]
mov eax, dword [ecx + eax + 0x50]
mov ecx, 1
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
mov esi, dword [case.0x43a5a5.92]
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
mov esi, dword [case.0x43a5a5.96]
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
jmp dword [edx*4 + 0x447428]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x447430]
xor eax, eax
jmp case.0x43a5a5.106
xor ecx, ecx
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x447430]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov eax, dword fs:[ecx]
jmp dword [0x447474]
mov eax, dword fs:[ecx]
mov eax, dword fs:[ecx]
jmp dword [0x447474]
mov ecx, dword [case.0x43a5a5.152]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp dword [ebp + 8], 0
sete cl
jmp dword [ecx*4 + 0x447488]
jmp dword [0x447498]
mov ecx, dword [case.0x43a5a5.162]
nop
nop
nop
nop
jmp ecx
mov eax, dword [eax + 0xc]
add eax, 0xc
mov esi, dword [case.0x43a5a5.174]
mov dword [esp + 4], 0
mov edi, dword [case.0x43a5a5.182]
mov ebx, dword [eax]
nop
nop
jmp esi
xor ecx, ecx
cmp ebx, eax
setne cl
jmp dword [ecx*4 + 0x4474c0]
xor edx, edx
mov ecx, dword [ebp + 8]
cmp dword [ebx + 0x18], ecx
sete dl
mov ecx, 1
jmp dword [edx*4 + 0x4474c8]
mov ecx, dword [ebx + 0x28]
mov dword [esp + 4], ecx
nop
nop
xor ecx, ecx
jmp edi
jmp dword [ecx*4 + 0x4474e0]
mov ebx, dword [ebx]
jmp case.0x43a5a5.168
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
jmp edx
mov ecx, dword [esp + 0x18]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x30]
setb al
jmp dword [eax*4 + 0x447518]
mov eax, dword [case.0x43a5a5.224]
mov ecx, dword [esp + 0x18]
jmp eax
mov eax, dword [esp + 0x24]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov ecx, eax
sub ecx, dword [esp + 0x28]
setae dl
jmp dword [edx*4 + 0x447538]
xor edx, edx
cmp ecx, dword [esp + 0x1c]
setb dl
jmp dword [edx*4 + 0x447540]
mov edx, dword [ebp + 8]
add edx, eax
xor ecx, ecx
mov eax, edx
jmp dword [ecx*4 + 0x447558]
xor eax, eax
int3
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [eax], 0x83825b4d
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xb
ja case.0x43a5a5.252
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edi, byte [eax + edx]
lea edx, [ecx + 0x40]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0x67c3b73f
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
add cl, 0x40
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xc
jb 0x43b3f0
jmp case.0x43a5a5.252
jmp dword [0x44756c]
push eax
mov dword [esi + 0x18], esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov ebx, esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 8], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x1c], edi
mov esp, edi
mov dword [esi + 0x24], ecx
mov edi, dword [ebp + 0xc]
mov dword [ecx], edi
mov dword [esi + 0x14], edx
mov ecx, dword [ebp + 8]
mov dword [edx], ecx
mov dword [esi + 0x10], ebx
mov dword [ebx], ecx
movzx ecx, word [ecx]
mov dword [esi + 4], ecx
mov dword [eax], 0x83825b4d
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [esi], 0
mov edx, dword [esi]
cmp edx, 0xb
ja 0x43b430
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ebx, dword [esi]
movzx edi, byte [eax + ebx]
lea ebx, [edx + 0x40]
mov ecx, edi
not ecx
or ecx, ebx
and ebx, edi
add ebx, ecx
neg ebx
lea ecx, [edx + ebx]
add ecx, 0x67c3b73f
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
add cl, 0x40
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xc
jb 0x43b4a0
jmp 0x43b430
xor edx, edx
mov ecx, dword [esi + 4]
cmp dword [eax], ecx
setne dl
jmp dword [edx*4 + 0x447570]
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x3c]
lea edx, [eax + ecx]
mov ebx, dword [esi + 8]
mov dword [ebx], edx
mov eax, dword [eax + ecx]
mov dword [esi + 4], eax
mov ebx, dword [esi + 0x1c]
mov dword [ebx], 0x2320ded6
mov dword [ebx + 4], 0
mov dword [ebx + 7], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xa
ja 0x43b577
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx eax, byte [ebx + edx]
lea edx, [ecx - 0x645e9485]
mov ebx, edx
and ebx, eax
xor edx, eax
add ecx, 0x7b
and ecx, eax
add ecx, ebx
sub edx, ecx
lea eax, [edx + ebx*2]
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
mov ecx, eax
xor ecx, 0xa2
and eax, 0x22
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x43b530
xor eax, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx]
setne al
mov ebx, dword [esi + 0x18]
jmp dword [eax*4 + 0x447578]
jmp dword [0x447598]
mov eax, dword [esi + 8]
mov eax, dword [eax]
xor ecx, ecx
cmp dword [eax + 0x84], 0
sete cl
jmp dword [ecx*4 + 0x4475a0]
mov eax, dword [eax + 0x80]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4475a8]
mov ecx, dword [edi]
mov dword [esi + 0x14], ecx
mov edx, dword [ecx + eax]
mov ecx, dword [case.0x43a5a5.272]
jmp ecx
mov ecx, dword [esi + 0x14]
add edx, ecx
mov eax, dword [ecx + eax + 0x10]
add eax, ecx
mov dword [esi + 8], eax
mov dword [esi + 4], edx
mov eax, dword [edx]
mov edx, eax
xor edx, 0x7fffffff
mov edi, eax
or edi, 0x80000000
xor ecx, ecx
test edi, edx
mov edx, dword [case.0x43a5a5.280]
mov dword [esi + 0x20], edx
setne cl
mov edx, dword [case.0x43a5a5.281]
mov dword [esi + 0x10], edx
jmp dword [ecx*4 + 0x4475c0]
xor ecx, ecx
movzx ecx, cl
jmp dword [ecx*4 + 0x4475c8]
mov ecx, dword [esi + 0x14]
add eax, ecx
add eax, 2
mov ecx, 0xffffffff
xor edi, edi
mov edx, edi
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
lea edi, [edi + 1]
jne 0x43b630
mov edi, 0xdca9bcf
test ecx, ecx
je 0x43b6c3
cmp ecx, 4
jb 0x43b69d
mov ebx, edx
and ebx, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x1c], ebx
movsx ebx, byte [eax]
xor ebx, edi
imul edi, ebx, 0x1000193
movsx ebx, byte [eax + 1]
xor ebx, edi
imul edi, ebx, 0x1000193
movsx ebx, byte [eax + 2]
xor ebx, edi
imul ebx, ebx, 0x1000193
movsx edi, byte [eax + 3]
add eax, 4
xor edi, ebx
mov ebx, dword [esi + 0x1c]
imul edi, edi, 0x1000193
add ebx, 0xfffffffc
jne 0x43b660
test cl, 3
je 0x43b6c3
and edx, 3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
movsx edi, byte [eax + ecx]
xor edi, ebx
imul edi, edi, 0x1000193
inc ecx
cmp edx, ecx
jne 0x43b6b0
xor eax, eax
mov ecx, dword [esi + 0x24]
cmp edi, dword [ecx]
sete al
jmp dword [eax*4 + 0x4475d0]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0x18]
jmp dword [esi + 0x20]
add ecx, 4
add edx, 4
jmp dword [esi + 0x10]
add ecx, 4
add edx, 4
add ecx, 4
add edx, 4
jmp dword [esi + 0x10]
mov eax, 1
jmp dword [eax*4 + 0x4475e8]
mov ebx, dword [esi + 0x18]
mov dword [ebx], 0
jmp case.0x43b584.5
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov ebx, dword [esi + 0x18]
mov dword [ebx], eax
xor eax, eax
mov ecx, dword [esi + 4]
jmp dword [eax*4 + 0x4475e8]
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
mov eax, dword [ecx]
mov edx, eax
xor edx, 0x7fffffff
mov edi, eax
or edi, 0x80000000
xor ecx, ecx
test edi, edx
setne cl
jmp dword [ecx*4 + 0x4475c0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4475c8]
jmp dword [0x4475f0]
mov dword [ebx], 0
jmp dword [0x4475fc]
mov dword [ebx], 0
mov dword [ebx], 0
jmp dword [0x4475fc]
jmp dword [0x447580]
mov dword [ebx], 0
nop
nop
mov dword [ebx], 0
jmp dword [0x44758c]
mov dword [ebx], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44760c]
mov eax, dword [case.0x43a5a5.298]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [ebx]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov dword [esp + 4], ecx
mov eax, dword [eax + ecx]
mov dword [esp + 0x10], 0xb14aea6
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov word [esp + 0x1c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x43b901
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x10]
lea edx, [ecx + esi]
add edx, 0x41b256ad
add ecx, 0xad
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov edx, ecx
xor edx, 0x44
and ecx, 0x44
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x43b8b0
mov ecx, dword [esp + 4]
add ecx, dword [ebp + 8]
mov dword [esp + 4], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x10]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x447628]
jmp dword [0x447638]
mov ecx, dword [esp + 4]
movzx eax, word [ecx + 0x14]
lea edx, [ecx + eax]
add edx, 0x18
xor esi, esi
xor eax, eax
cmp si, word [ecx + 6]
setb al
mov dword [esp + 0x20], 1
jmp dword [eax*4 + 0x447640]
mov edi, 8
mov ebx, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov eax, edx
nop
nop
test edi, edi
je 0x43b980
dec edi
movzx ecx, byte [eax]
inc eax
movzx edx, byte [ebx]
inc ebx
cmp dl, cl
je 0x43b960
sub edx, ecx
jmp 0x43b982
xor edx, edx
xor eax, eax
test edx, edx
sete al
jmp dword [eax*4 + 0x447648]
inc esi
mov edx, dword [esp + 8]
add edx, 0x28
xor eax, eax
mov ecx, dword [esp + 4]
cmp si, word [ecx + 6]
setb al
jmp dword [eax*4 + 0x447640]
mov eax, dword [case.0x43b917.13]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x447660]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 8]
add eax, dword [esi + 0xc]
mov dword [edx], eax
nop
nop
nop
nop
jmp dword [0x447670]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 8]
jmp dword [eax*4 + 0x447678]
mov al, 1
mov ecx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x447680]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
xor ecx, ecx
mov al, 1
jmp dword [ecx*4 + 0x447680]