Function at 0x439d00
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov ecx, dword [eax + 0x28]
mov edi, dword [eax + 0x24]
mov dword [esp + 4], eax
test ecx, ecx
je 0x439ee1
lea eax, [ecx + ecx*4]
lea esi, [edi + 0x140]
shl eax, 6
add eax, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp]
movzx eax, byte [eax + 0x15]
mov byte [esp + 8], al
mov eax, ecx
shl eax, 6
lea ebx, [eax + eax*4]
jmp 0x439d72
add esi, 0x140
add ebx, 0xfffffec0
je 0x439ee1
cmp dword [esi - 0xf0], 0
jne 0x439d60
cmp dword [esi - 0xc4], 0x110000
jne 0x439d60
cmp dword [esi - 0xd0], 0
je 0x439d99
cmp dword [esi - 0xcc], 0
jne 0x439d60
mov eax, dword [esi - 8]
test al, 0x10
jne 0x439d60
test eax, 0x80000
jne 0x439dae
cmp byte [esp + 8], 0
jne 0x439dc9
cmp byte [esp + 8], 0
sete dh
test eax, 0x40000
sete dl
test dh, dl
jne 0x439dc9
and eax, 0x80
je 0x439d60
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
lea edi, [esi - 0x140]
test eax, eax
jne 0x439df1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b3f0
mov dword [0x5920d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b3f0
mov dword [eax], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 1
cmp esi, edi
je 0x43a0b5
mov dword [esp + 0x28], 1
mov ecx, dword [esp]
add esi, 0x140
movzx ecx, byte [ecx + 0x15]
jmp 0x439e4e
cmp esi, edi
lea esi, [esi + 0x140]
je 0x43a0bd
cmp dword [esi - 0xf0], 0
jne 0x439e40
cmp dword [esi - 0xc4], 0x110000
jne 0x439e40
cmp dword [esi - 0xd0], 0
je 0x439e75
cmp dword [esi - 0xcc], 0
jne 0x439e40
mov edx, dword [esi - 8]
test dl, 0x10
jne 0x439e40
test edx, 0x80000
jne 0x439e89
test cl, cl
jne 0x439ea3
test cl, cl
sete ch
test edx, 0x40000
sete bl
test ch, bl
jne 0x439ea3
and edx, 0x80
je 0x439e40
mov edi, dword [esp + 0x28]
lea ebx, [esi - 0x140]
cmp edi, dword [esp + 0x40]
je 0x439ed0
mov dword [eax + edi*4], ebx
inc edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x10]
cmp esi, edi
jne 0x439e2d
jmp 0x43a0bd
lea ecx, [esp + 0x40]
mov edx, edi
call fcn.00437860
mov eax, dword [esp + 0x44]
jmp 0x439eb3
mov dword [esp + 0x8c], 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x98], 0
test ecx, ecx
je 0x43a0eb
mov eax, dword [esp]
lea esi, [ecx + ecx*4]
shl ecx, 6
shl esi, 6
lea ecx, [ecx + ecx*4]
add esi, edi
add edi, 0x140
movzx edx, byte [eax + 0x15]
jmp 0x439f42
add edi, 0x140
add ecx, 0xfffffec0
je 0x43a0eb
cmp dword [edi - 0xf0], 0
jne 0x439f57
cmp dword [edi - 0xc4], 0x110000
je 0x439f30
cmp dword [edi - 0xd0], 0
je 0x439f69
cmp dword [edi - 0xcc], 0
jne 0x439f30
mov eax, dword [edi - 8]
test al, 0x10
jne 0x439f30
test eax, 0x80000
jne 0x439f7b
test dl, dl
jne 0x439f93
test dl, dl
sete dh
test eax, 0x40000
sete bl
test dh, bl
jne 0x439f93
and eax, 0x80
je 0x439f30
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
lea ebx, [edi - 0x140]
test eax, eax
jne 0x439fbb
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b3f0
mov dword [0x5920d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b3f0
cmp edi, esi
mov dword [eax], ebx
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 1
je 0x43a165
mov dword [esp + 0x24], 1
mov ecx, dword [esp]
add edi, 0x140
movzx ecx, byte [ecx + 0x15]
jmp 0x43a01e
cmp edi, esi
lea edi, [edi + 0x140]
je 0x43a16d
cmp dword [edi - 0xf0], 0
jne 0x43a033
cmp dword [edi - 0xc4], 0x110000
je 0x43a010
cmp dword [edi - 0xd0], 0
je 0x43a045
cmp dword [edi - 0xcc], 0
jne 0x43a010
mov edx, dword [edi - 8]
test dl, 0x10
jne 0x43a010
test edx, 0x80000
jne 0x43a059
test cl, cl
jne 0x43a073
test cl, cl
sete ch
test edx, 0x40000
sete bl
test ch, bl
jne 0x43a073
and edx, 0x80
je 0x43a010
mov ebx, dword [esp + 0x24]
lea ecx, [edi - 0x140]
cmp ebx, dword [esp + 0x40]
je 0x43a09c
mov dword [eax + ebx*4], ecx
inc ebx
cmp edi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ebx
jne 0x439ff3
jmp 0x43a16d
mov dword [esp + 8], ecx
lea ecx, [esp + 0x40]
mov edx, ebx
call fcn.00437860
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x44]
jmp 0x43a083
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x40]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 0x24]
mov ecx, dword [eax + 0x28]
mov dword [esp + 4], eax
test ecx, ecx
jne 0x439f07
mov edi, dword [esp + 4]
mov dword [esp + 0x88], 4
mov dword [esp + 0x24], 0
mov dword [esp + 0x94], 0
mov eax, dword [edi + 0x12c]
test eax, eax
je 0x43a193
mov ecx, dword [edi + 0x128]
imul edx, eax, 0x160
add ecx, 0xfc
jmp 0x43a13e
add ecx, 0x160
add edx, 0xfffffea0
je 0x43a193
cmp dword [ecx], 4
jne 0x43a14e
mov eax, dword [ecx - 4]
cmp dword [eax], 0x706c6568
je 0x43a130
test byte [ecx - 0x33], 8
jne 0x43a130
test byte [ecx - 0x2b], 8
jne 0x43a130
mov al, 1
mov dword [esp + 0x90], eax
jmp 0x43a19e
mov dword [esp + 0x24], 1
mov ecx, dword [esp]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x94], eax
mov dword [esp + 0x88], edx
mov eax, dword [edi + 0x12c]
test eax, eax
jne 0x43a117
mov dword [esp + 0x90], 0
mov esi, dword [edi + 0x24]
mov edi, dword [edi + 0x28]
call fcn.004b3550
test eax, eax
je 0x43b3cf
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 4
mov dword [esp + 0xbc], 0x5812f0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xb8], 0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
test edi, edi
mov dword [eax], edx
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0xa0], xmm0
je 0x43abf6
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 4], 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0xdc], edi
jmp 0x43a29a
mov ebx, dword [esp + 0xb4]
mov edx, dword [esp + 0x30]
lea eax, [edi + edi*2]
inc edi
mov esi, dword [esp + 0x9c]
mov ecx, dword [esp + 0x1c]
mov dword [ebx + eax*4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [ebx + eax*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [ebx + eax*4 + 8], edx
mov dword [esp + 0xb8], edi
mov ebx, edi
mov edi, dword [esp + 0xdc]
inc ecx
cmp ecx, edi
je 0x43a985
lea eax, [ecx + ecx*4]
shl eax, 6
cmp dword [esi + eax + 0x70], 0
je 0x43a291
mov edx, dword [esi + eax + 0x74]
test edx, edx
je 0x43a291
movdqu xmm0, xmmword [esp + 0xa0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esi + eax + 0x78]
lea eax, [esp + 0x70]
lea esi, [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], edx
mov ecx, esi
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
pxor xmm1, xmmword [0x56e380]
pxor xmm2, xmmword [0x56e390]
movdqu xmmword [esp + 0x40], xmm1
movdqu xmmword [esp + 0x50], xmm2
movdqu xmmword [esp + 0x60], xmm0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
push ebx
call fcn.0045dac0
add esp, 4
lea edx, [esp + 0x34]
mov byte [esp + 0x34], 0xff
mov ecx, esi
push 1
call fcn.0045dac0
add esp, 4
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
movdqu xmm0, xmmword [esp + 0x48]
movdqu xmm3, xmmword [esp + 0x40]
shl eax, 0x18
xor edx, ecx
movdqa xmm5, xmm0
or eax, dword [esp + 0x74]
movd xmm4, edx
movd xmm2, edx
psrlq xmm5, 0x33
xor esi, eax
movd xmm1, esi
punpckldq xmm2, xmm1
punpcklqdq xmm1, xmm4
punpcklqdq xmm2, xmm3
shufps xmm1, xmm0, 0xe2
movaps xmm4, xmm1
paddq xmm2, xmm0
psllq xmm1, 0x10
psllq xmm0, 0xd
pshufd xmm3, xmm2, 0xff
psrlq xmm4, 0x30
movsd xmm0, xmm1
movdqa xmm1, xmm2
movd edx, xmm3
movsd xmm5, xmm4
orpd xmm0, xmm5
movd xmm3, edx
shufps xmm1, xmm3, 0x4e
xorpd xmm0, xmm2
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
movd esi, xmm1
psllq xmm2, 0x15
xor esi, ecx
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
movd edx, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
movd xmm3, esi
movd edi, xmm2
xor edx, 0xff
xorpd xmm0, xmm1
xor edi, eax
movd xmm2, edx
mov edx, ebx
mov ebx, dword [esp + 0xc0]
movd xmm4, edi
shufpd xmm1, xmm2, 1
mov dword [esp + 0x20], edx
punpcklqdq xmm4, xmm3
movapd xmm3, xmm0
shufps xmm1, xmm0, 0xe2
shufps xmm3, xmm4, 0x24
movaps xmm4, xmm0
paddq xmm1, xmm3
psrlq xmm4, 0x33
mov dword [esp + 8], ebx
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movaps xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm1, xmm2
movd xmm3, eax
xorpd xmm0, xmm2
shufps xmm1, xmm3, 0x4e
movapd xmm4, xmm0
shufps xmm1, xmm2, 0x42
psrlq xmm4, 0x33
paddq xmm1, xmm0
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movdqa xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm1, xmm2
movd xmm3, eax
xorpd xmm0, xmm2
shufps xmm1, xmm3, 0x4e
movapd xmm3, xmm0
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
psrlq xmm3, 0x33
psrlq xmm2, 0x30
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
movapd xmm2, xmm0
movapd xmm3, xmm0
movapd xmm4, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
psllq xmm4, 0x11
movsd xmm3, xmm2
movapd xmm2, xmm0
psllq xmm2, 0x15
movsd xmm4, xmm2
orpd xmm4, xmm3
movapd xmm2, xmm4
shufpd xmm2, xmm1, 1
pcmpeqd xmm1, xmm1
xorpd xmm4, xmm2
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
movd esi, xmm4
movd eax, xmm0
pshufd xmm0, xmm2, 0xff
movd ecx, xmm0
xor esi, ecx
xor esi, eax
mov eax, dword [esp + 0xbc]
mov ecx, esi
and ebx, esi
mov dword [esp + 0x2c], esi
xor esi, esi
shr ecx, 0x19
mov dword [esp + 0x84], ebx
movd xmm0, ecx
mov dword [esp + 0x18], ecx
punpcklbw xmm0, xmm0
movdqu xmm2, xmmword [eax + ebx]
mov dword [esp + 0x14], eax
pshuflw xmm0, xmm0, 0
pshufd xmm3, xmm0, 0
movdqa xmm0, xmm3
movdqa xmmword [esp + 0xe0], xmm3
pcmpeqb xmm0, xmm2
movdqa xmmword [esp + 0x100], xmm2
pmovmskb edi, xmm0
test di, di
je 0x43a670
mov ecx, dword [esp + 0x14]
jmp 0x43a6b0
mov ecx, dword [esp + 0x14]
nop word cs:[eax + eax]
nop
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x43a740
lea ebx, [esi + ebx + 0x10]
movdqa xmm0, xmm3
add esi, 0x10
and ebx, dword [esp + 8]
movdqu xmm2, xmmword [ecx + ebx]
pcmpeqb xmm0, xmm2
pmovmskb edi, xmm0
test edi, edi
je 0x43a680
tzcnt eax, edi
add eax, ebx
and eax, dword [esp + 8]
shl eax, 2
sub ecx, eax
mov ecx, dword [ecx - 4]
cmp dword [esp + 0x10], ecx
jbe 0x43b36e
lea eax, [edi - 1]
and eax, edi
mov edi, eax
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 4]
cmp edx, dword [ecx + eax*4 + 4]
jne 0x43a664
mov ecx, dword [esp + 4]
lea eax, [ecx + eax*4]
push edx
push dword [eax]
push dword [esp + 0x38]
movdqa xmmword [esp + 0xfc], xmm2
call sub.msvcrt.dll_memcmp
movdqa xmm2, xmmword [esp + 0xfc]
movdqa xmm3, xmmword [esp + 0xec]
mov edx, dword [esp + 0x2c]
pcmpeqd xmm1, xmm1
add esp, 0xc
test eax, eax
jne 0x43a664
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jmp 0x43a291
movdqa xmm0, xmmword [esp + 0x100]
mov edi, dword [esp + 8]
pmovmskb eax, xmm0
test eax, eax
je 0x43a75e
mov ebx, dword [esp + 0x84]
jmp 0x43a786
mov ebx, dword [esp + 0x84]
mov esi, ecx
mov ecx, 0x10
nop dword [eax]
add ebx, ecx
add ecx, 0x10
and ebx, edi
movdqu xmm0, xmmword [esi + ebx]
pmovmskb eax, xmm0
test eax, eax
je 0x43a770
mov ecx, esi
tzcnt eax, eax
add eax, ebx
and eax, edi
movzx ebx, byte [ecx + eax]
test bl, bl
js 0x43a7ae
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
or eax, 0x10000
tzcnt eax, eax
movzx eax, ax
movzx ebx, byte [ecx + eax]
and bl, 1
je 0x43a7c1
cmp dword [esp + 0xc4], 0
je 0x43a8ea
mov esi, ecx
mov ecx, dword [esp + 0xc4]
movzx edx, bl
mov ebx, dword [esp + 0x18]
sub ecx, edx
lea edx, [eax - 0x10]
and edx, edi
mov dword [esp + 0xc4], ecx
mov byte [esi + eax], bl
shl eax, 2
mov byte [edx + esi + 0x10], bl
mov ebx, dword [esp + 0x10]
neg eax
mov edx, dword [esp + 0xc8]
inc edx
mov dword [esp + 0xc8], edx
mov dword [esi + eax - 4], ebx
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb8]
cmp ebx, esi
jne 0x43a8b0
add edx, ecx
mov eax, ebx
mov esi, edx
sub eax, edi
sub esi, edi
cmp eax, esi
jae 0x43a85d
add esi, edi
jb 0x43b3c1
xor edx, edx
cmp esi, 0xaaaaaab
setb al
test ebx, ebx
je 0x43a868
mov ecx, dword [esp + 0xb4]
lea ebx, [ebx*4]
lea ebx, [ebx + ebx*2]
mov dword [esp + 0x40], ecx
mov ecx, 4
mov dword [esp + 0x48], ebx
jmp 0x43a86a
mov esi, ebx
cmp edi, esi
je 0x43a8b8
jmp 0x43a250
xor ecx, ecx
mov dl, al
lea ebx, [esi*4]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x34]
lea eax, [esp + 0x40]
lea ebx, [ebx + ebx*2]
shl edx, 2
push eax
push ebx
call fcn.004745d0
add esp, 8
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x38]
je 0x43a8d2
mov esi, dword [esp + 0x10]
cmp ecx, 0x80000001
jne 0x43b3bd
nop word [eax + eax]
cmp edi, esi
jne 0x43a250
lea ecx, [esp + 0xb0]
mov edx, edi
call fcn.00437170
mov edi, dword [esp + 0xb8]
jmp 0x43a250
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], esi
cmp edi, esi
jne 0x43a250
jmp 0x43a8b8
lea ecx, [esp + 0xbc]
mov edx, 1
push dword [esp + 0x10]
push dword [esp + 8]
call fcn.00460de0
add esp, 8
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
mov ecx, edi
mov dword [esp + 0x14], eax
and ecx, dword [esp + 0x2c]
movdqu xmm0, xmmword [eax + ecx]
pmovmskb eax, xmm0
test eax, eax
jne 0x43a956
mov esi, edi
mov edi, dword [esp + 0x14]
mov edx, 0x10
nop word cs:[eax + eax]
add ecx, edx
add edx, 0x10
and ecx, esi
movdqu xmm0, xmmword [edi + ecx]
pmovmskb eax, xmm0
test eax, eax
je 0x43a940
mov edi, esi
tzcnt eax, eax
add eax, ecx
mov ecx, dword [esp + 0x14]
and eax, edi
cmp byte [ecx + eax], 0
js 0x43a7c1
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
or eax, 0x10000
tzcnt eax, eax
movzx eax, ax
jmp 0x43a7c1
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc0]
cmp dword [esp + 0x28], 0
mov esi, dword [esp]
mov dword [esp + 0x30], eax
je 0x43ac2f
mov edx, dword [esi]
lea ecx, [esp + 0x40]
push 6
push str.ARGS:_nOPTIONS:_nSUBCOMMANDS
push dword [esi + 4]
call fcn.00439c60
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b1e7
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x43aa1c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b3ff
mov dword [0x5920d8], eax
push 0x28
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b3ff
mov dword [esp + 0x34], 0xa
mov dword [esp + 0x38], eax
mov dword [esp + 4], eax
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 8], 2
lea ebx, [esi + eax*4]
mov eax, dword [esp]
movzx eax, byte [eax + 0x15]
mov byte [esp + 0x10], al
test al, al
jne 0x43aa8b
jmp 0x43aabb
add esi, 4
cmp esi, ebx
je 0x43acab
mov edi, dword [esi]
mov eax, dword [edi + 0x138]
test al, 0x10
jne 0x43aa80
mov ecx, eax
and ecx, 0x80080
cmp ecx, 0x80000
je 0x43aa80
jmp 0x43aad7
add esi, 4
cmp esi, ebx
je 0x43acab
mov edi, dword [esi]
mov eax, dword [edi + 0x138]
test al, 0x10
jne 0x43aab0
mov ecx, eax
and ecx, 0x40080
cmp ecx, 0x40000
je 0x43aab0
add esi, 4
test al, 0x20
mov dword [esp + 4], edx
jne 0x43aaf5
cmp dword [edi + 0x50], 0
jne 0x43aaf5
cmp dword [edi + 0x7c], 0x110000
jne 0x43abba
lea eax, [esp + 0xa0]
mov ecx, edi
lea edx, [esp + 0x40]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0x20
mov byte [esp + 0x60], 3
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0x56ffa8
call fcn.00453c90
test al, al
jne 0x43b40e
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x18], ecx
call fcn.004b49c0
mov ecx, dword [esp + 8]
cmp ecx, eax
cmovbe ecx, eax
cmp dword [esp + 0xf0], 0
mov dword [esp + 8], ecx
je 0x43abba
push dword [esp + 0x18]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x3c]
cmp edx, dword [esp + 0x34]
je 0x43abc4
jmp 0x43abd1
mov edx, dword [esp + 4]
cmp edx, dword [esp + 0x34]
jne 0x43abd1
lea ecx, [esp + 0x34]
call fcn.004b4f70
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp]
mov dword [eax + edx*4], edi
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x10]
inc edx
cmp esi, ebx
mov dword [esp + 0x3c], edx
jne 0x43aa6d
jmp 0x43acae
mov dword [esp + 0x1c], 0x5812f0
mov dword [esp + 0xe0], 4
mov dword [esp + 0x2c], 0
xor eax, eax
xor edi, edi
mov dword [esp + 0x20], 0
cmp dword [esp + 0x28], 0
mov esi, dword [esp]
mov dword [esp + 0x30], eax
jne 0x43a9d4
cmp dword [esp + 0x24], 0
jne 0x43ad6a
mov al, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
jne 0x43adce
cmp byte [esp + 0x90], 0
je 0x43ae45
test byte [esp + 0x18], 1
jne 0x43ac8c
mov eax, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [eax]
push 2
push 0x570aed
push dword [eax + 4]
call fcn.00437c10
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b34a
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0xe8]
test eax, eax
je 0x43b2c3
mov esi, dword [ecx + 0xec]
jmp 0x43b2cd
mov ecx, dword [esp]
mov ebx, edx
mov edx, dword [esp + 0x8c]
push dword [esp + 8]
push dword [esp + 0x2c]
call fcn.0043e7e0
add esp, 8
test ebx, ebx
je 0x43ad1b
lea esi, [ebx - 1]
movzx eax, al
shl ebx, 2
xor edi, edi
mov dword [esp + 0x10], eax
nop word [eax + eax]
mov edx, dword [esp]
xor eax, eax
sub esi, 1
lea ecx, [esp + 0x40]
setb al
push dword [esp + 8]
push dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + edi]
call fcn.0043ea00
add esp, 0x10
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b288
add edi, 4
cmp ebx, edi
jne 0x43ace0
cmp dword [esp + 0x34], 0
je 0x43ad33
push dword [esp + 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x24], 0
mov edi, dword [esp + 0x14]
je 0x43adb7
mov eax, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [eax]
push 2
push 0x570aed
push dword [eax + 4]
call fcn.00437c10
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b1e7
mov esi, dword [esp]
mov edx, dword [esi]
lea ecx, [esp + 0x40]
push 9
push 0x5701ba
push dword [esi + 4]
call fcn.00439c60
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b1e7
lea ecx, [esp + 0x40]
mov edx, esi
push dword [esp + 0x24]
push dword [esp + 0x8c]
call fcn.0043b430
add esp, 8
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b1e7
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
je 0x43ac4f
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43adf6
mov ecx, dword [esp + 0x1c]
lea eax, [eax*4 + 0x13]
and eax, 0xfffffff0
sub ecx, eax
push dword [ecx - 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0xe0]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*4]
mov esi, ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp]
cmp esi, dword [esp + 0xf0]
jne 0x43ae73
cmp dword [esp + 0x20], 0
je 0x43ae33
push dword [esp + 0xe0]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc]
cmp byte [esp + 0x90], 0
jne 0x43ac5d
cmp dword [esp + 0x2c], 0
mov byte [eax], 4
jne 0x43b244
jmp 0x43b201
mov esi, dword [esp + 0x10]
mov eax, dword [esp]
add esi, 0xc
cmp esi, dword [esp + 0xf0]
je 0x43ae18
mov ecx, dword [esi]
test ecx, ecx
je 0x43ae18
mov edi, dword [esi + 4]
mov dword [esp + 0xd4], ecx
mov dword [esp + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x10], esi
mov dword [esp + 0xd8], edi
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x43ae60
mov esi, dword [ecx + 0x24]
lea ecx, [eax + eax*4]
shl eax, 6
shl ecx, 6
lea ebx, [eax + eax*4]
add ecx, esi
add esi, 0x140
mov dword [esp + 0x14], ecx
mov ecx, dword [esp]
movzx ecx, byte [ecx + 0x15]
mov byte [esp + 4], cl
jmp 0x43aede
add esi, 0x140
add ebx, 0xfffffec0
je 0x43ae60
cmp dword [esi - 0xd0], 0
je 0x43aed0
mov eax, dword [esi - 0xcc]
test eax, eax
je 0x43aed0
cmp dword [esi - 0xc8], edi
jne 0x43aed0
push edi
push dword [esp + 0xc]
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x43aed0
mov eax, dword [esi - 8]
test al, 0x10
jne 0x43aed0
test eax, 0x80000
jne 0x43af20
cmp byte [esp + 4], 0
jne 0x43af3b
cmp byte [esp + 4], 0
sete cl
test eax, 0x40000
sete dl
test cl, dl
jne 0x43af3b
and eax, 0x80
je 0x43aed0
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
lea edi, [esi - 0x140]
test eax, eax
jne 0x43af63
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b3f0
mov dword [0x5920d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b3f0
mov ecx, dword [esp + 0x14]
mov dword [eax], edi
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 1
cmp esi, ecx
je 0x43b0b9
mov dword [esp + 0x84], eax
mov eax, dword [esp]
mov edi, 1
mov dword [esp + 8], edi
movzx eax, byte [eax + 0x15]
mov edi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
add esi, 0x140
mov byte [esp + 4], al
jmp 0x43afde
cmp esi, ecx
lea esi, [esi + 0x140]
je 0x43b08d
cmp dword [esi - 0xd0], 0
je 0x43afd0
mov eax, dword [esi - 0xcc]
test eax, eax
je 0x43afd0
cmp dword [esi - 0xc8], ebx
jne 0x43afd0
push ebx
push edi
push eax
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x43afd0
mov eax, dword [esi - 8]
test al, 0x10
jne 0x43afd0
test eax, 0x80000
jne 0x43b021
cmp byte [esp + 4], 0
jne 0x43b040
cmp byte [esp + 4], 0
sete cl
test eax, 0x40000
sete dl
test cl, dl
mov ecx, dword [esp + 0x14]
jne 0x43b040
and eax, 0x80
je 0x43afd0
mov ebx, dword [esp + 8]
mov eax, dword [esp]
lea edi, [esi - 0x140]
cmp ebx, dword [esp + 0x40]
je 0x43b06e
mov edx, dword [esp + 0x84]
mov dword [edx + ebx*4], edi
inc ebx
cmp esi, ecx
mov edi, ebx
mov dword [esp + 0x48], ebx
jne 0x43afa6
jmp 0x43b094
lea ecx, [esp + 0x40]
mov edx, ebx
call fcn.00437860
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp]
mov dword [esp + 0x84], edx
jmp 0x43b053
mov eax, dword [esp]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
test edi, edi
lea ebx, [esp + 0x40]
mov dword [esp + 4], ecx
je 0x43b1d9
test byte [esp + 0x18], 1
mov dword [esp + 0x14], edx
je 0x43b0dc
jmp 0x43b102
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov edi, 1
lea ebx, [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp]
test byte [esp + 0x18], 1
mov dword [esp + 0x14], edx
jne 0x43b102
mov edx, dword [eax]
mov ecx, ebx
push 2
push 0x570aed
push dword [eax + 4]
call fcn.00437c10
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b394
mov eax, dword [esp]
lea ecx, [esp + 0xd4]
lea esi, [esp + 0x110]
mov dword [esp + 0x40], 0x5701d0
mov dword [esp + 0x44], 2
mov dword [esp + 0x50], 0
mov edx, ebx
mov dword [esp + 8], edi
mov edi, ebx
mov ebx, eax
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], 0x461c20
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x4c], 1
call fcn.0042a3a0
mov edx, dword [ebx]
lea ecx, [esp + 0x34]
push esi
push dword [ebx + 4]
call fcn.004404c0
add esp, 8
movzx eax, byte [esp + 0x34]
cmp al, 4
jne 0x43b37c
mov ecx, edi
mov edx, ebx
push dword [esp + 8]
mov edi, dword [esp + 8]
push edi
call fcn.0043b430
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b386
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
test edx, edx
je 0x43b1c1
push edi
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
add esi, 0xc
cmp esi, dword [esp + 0xf0]
jne 0x43ae73
jmp 0x43ae18
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 4]
test edx, edx
jne 0x43b1b3
jmp 0x43b1c1
mov ebx, ecx
mov eax, dword [esp + 0x41]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [edx + 4], ecx
mov dword [edx + 1], eax
mov ecx, ebx
mov eax, edx
mov byte [edx], bl
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43b229
mov ecx, dword [esp + 0x1c]
lea eax, [eax*4 + 0x13]
and eax, 0xfffffff0
sub ecx, eax
push dword [ecx - 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x20], 0
je 0x43b244
push dword [esp + 0xe0]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x94], 0
je 0x43b262
push dword [esp + 0x88]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x98], 0
je 0x43b280
push dword [esp + 0x8c]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, eax
mov eax, dword [esp + 0x41]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x34], 0
mov dword [edx + 4], ecx
mov dword [edx + 1], eax
mov eax, edx
je 0x43b2ba
push dword [esp + 4]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc]
mov ecx, ebx
mov byte [eax], bl
jmp 0x43b201
mov esi, 0xb
mov eax, 0x5701c3
mov edi, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [edi]
push esi
push eax
push dword [edi + 4]
call fcn.00439c60
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b34a
mov edx, dword [edi]
lea ecx, [esp + 0x40]
push 2
push 0x57de22
push dword [edi + 4]
call fcn.00439c60
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b34a
mov eax, dword [edi + 0xc]
lea ecx, [esp + 0x40]
mov edx, edi
push dword [eax + 0x12c]
push dword [eax + 0x128]
call fcn.0043c240
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b34a
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
mov byte [eax], 4
jne 0x43b244
jmp 0x43b201
cmp dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x41]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
mov dword [esi + 4], edx
mov dword [esi + 1], ecx
mov byte [esi], al
jne 0x43b244
jmp 0x43b201
mov edx, dword [esp + 0x10]
push 0x581154
call fcn.004699c0
mov ecx, dword [esp + 0x35]
mov edx, dword [esp + 0x38]
jmp 0x43b39c
mov ecx, dword [esp + 0x41]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xc]
jmp 0x43b3a4
mov ecx, dword [esp + 0x41]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov dword [ebx + 4], edx
mov dword [ebx + 1], ecx
cmp dword [esp + 0x14], 0
mov byte [ebx], al
je 0x43b229
push edi
jmp 0x43b21c
test ecx, ecx
jne 0x43b3c6
call fcn.00429f20
mov edx, dword [esp + 0x3c]
call fcn.00429f60
lea eax, [esp + 0xd4]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x571568
push 0x571508
push eax
call fcn.0046f0c0
mov ecx, 4
mov edx, 0x10
call fcn.00429f60
mov ecx, 4
mov edx, 0x28
call fcn.00429f60
lea eax, [esp + 0xd4]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_string.rs
mov edx, 0x37
push 0x581d00
push 0x56ffc0
push eax
call fcn.0046f0c0
nop