Function at 0x439d60
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 0x439f41
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 0x439dd2
add esi, 0x140
add ebx, 0xfffffec0
je 0x439f41
cmp dword [esi - 0xf0], 0
jne 0x439dc0
cmp dword [esi - 0xc4], 0x110000
jne 0x439dc0
cmp dword [esi - 0xd0], 0
je 0x439df9
cmp dword [esi - 0xcc], 0
jne 0x439dc0
mov eax, dword [esi - 8]
test al, 0x10
jne 0x439dc0
test eax, 0x80000
jne 0x439e0e
cmp byte [esp + 8], 0
jne 0x439e29
cmp byte [esp + 8], 0
sete dh
test eax, 0x40000
sete dl
test dh, dl
jne 0x439e29
and eax, 0x80
je 0x439dc0
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
lea edi, [esi - 0x140]
test eax, eax
jne 0x439e51
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b450
mov dword [0x5970d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b450
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 0x43a115
mov dword [esp + 0x28], 1
mov ecx, dword [esp]
add esi, 0x140
movzx ecx, byte [ecx + 0x15]
jmp 0x439eae
cmp esi, edi
lea esi, [esi + 0x140]
je 0x43a11d
cmp dword [esi - 0xf0], 0
jne 0x439ea0
cmp dword [esi - 0xc4], 0x110000
jne 0x439ea0
cmp dword [esi - 0xd0], 0
je 0x439ed5
cmp dword [esi - 0xcc], 0
jne 0x439ea0
mov edx, dword [esi - 8]
test dl, 0x10
jne 0x439ea0
test edx, 0x80000
jne 0x439ee9
test cl, cl
jne 0x439f03
test cl, cl
sete ch
test edx, 0x40000
sete bl
test ch, bl
jne 0x439f03
and edx, 0x80
je 0x439ea0
mov edi, dword [esp + 0x28]
lea ebx, [esi - 0x140]
cmp edi, dword [esp + 0x40]
je 0x439f30
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 0x439e8d
jmp 0x43a11d
lea ecx, [esp + 0x40]
mov edx, edi
call fcn.004378c0
mov eax, dword [esp + 0x44]
jmp 0x439f13
mov dword [esp + 0x8c], 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x98], 0
test ecx, ecx
je 0x43a14b
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 0x439fa2
add edi, 0x140
add ecx, 0xfffffec0
je 0x43a14b
cmp dword [edi - 0xf0], 0
jne 0x439fb7
cmp dword [edi - 0xc4], 0x110000
je 0x439f90
cmp dword [edi - 0xd0], 0
je 0x439fc9
cmp dword [edi - 0xcc], 0
jne 0x439f90
mov eax, dword [edi - 8]
test al, 0x10
jne 0x439f90
test eax, 0x80000
jne 0x439fdb
test dl, dl
jne 0x439ff3
test dl, dl
sete dh
test eax, 0x40000
sete bl
test dh, bl
jne 0x439ff3
and eax, 0x80
je 0x439f90
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
lea ebx, [edi - 0x140]
test eax, eax
jne 0x43a01b
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b450
mov dword [0x5970d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b450
cmp edi, esi
mov dword [eax], ebx
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 1
je 0x43a1c5
mov dword [esp + 0x24], 1
mov ecx, dword [esp]
add edi, 0x140
movzx ecx, byte [ecx + 0x15]
jmp 0x43a07e
cmp edi, esi
lea edi, [edi + 0x140]
je 0x43a1cd
cmp dword [edi - 0xf0], 0
jne 0x43a093
cmp dword [edi - 0xc4], 0x110000
je 0x43a070
cmp dword [edi - 0xd0], 0
je 0x43a0a5
cmp dword [edi - 0xcc], 0
jne 0x43a070
mov edx, dword [edi - 8]
test dl, 0x10
jne 0x43a070
test edx, 0x80000
jne 0x43a0b9
test cl, cl
jne 0x43a0d3
test cl, cl
sete ch
test edx, 0x40000
sete bl
test ch, bl
jne 0x43a0d3
and edx, 0x80
je 0x43a070
mov ebx, dword [esp + 0x24]
lea ecx, [edi - 0x140]
cmp ebx, dword [esp + 0x40]
je 0x43a0fc
mov dword [eax + ebx*4], ecx
inc ebx
cmp edi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ebx
jne 0x43a053
jmp 0x43a1cd
mov dword [esp + 8], ecx
lea ecx, [esp + 0x40]
mov edx, ebx
call fcn.004378c0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x44]
jmp 0x43a0e3
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 0x439f67
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 0x43a1f3
mov ecx, dword [edi + 0x128]
imul edx, eax, 0x160
add ecx, 0xfc
jmp 0x43a19e
add ecx, 0x160
add edx, 0xfffffea0
je 0x43a1f3
cmp dword [ecx], 4
jne 0x43a1ae
mov eax, dword [ecx - 4]
cmp dword [eax], 0x706c6568
je 0x43a190
test byte [ecx - 0x33], 8
jne 0x43a190
test byte [ecx - 0x2b], 8
jne 0x43a190
mov al, 1
mov dword [esp + 0x90], eax
jmp 0x43a1fe
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 0x43a177
mov dword [esp + 0x90], 0
mov esi, dword [edi + 0x24]
mov edi, dword [edi + 0x28]
call fcn.004b30f0
test eax, eax
je 0x43b42f
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 4
mov dword [esp + 0xbc], 0x585480
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 0x43ac56
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 4], 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0xdc], edi
jmp 0x43a2fa
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 0x43a9e5
lea eax, [ecx + ecx*4]
shl eax, 6
cmp dword [esi + eax + 0x70], 0
je 0x43a2f1
mov edx, dword [esi + eax + 0x74]
test edx, edx
je 0x43a2f1
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 [0x573380]
pxor xmm2, xmmword [0x573390]
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.0045dad0
add esp, 4
lea edx, [esp + 0x34]
mov byte [esp + 0x34], 0xff
mov ecx, esi
push 1
call fcn.0045dad0
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 0x43a6d0
mov ecx, dword [esp + 0x14]
jmp 0x43a710
mov ecx, dword [esp + 0x14]
nop word cs:[eax + eax]
nop
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x43a7a0
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 0x43a6e0
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 0x43b3ce
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 0x43a6c4
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 0x43a6c4
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
jmp 0x43a2f1
movdqa xmm0, xmmword [esp + 0x100]
mov edi, dword [esp + 8]
pmovmskb eax, xmm0
test eax, eax
je 0x43a7be
mov ebx, dword [esp + 0x84]
jmp 0x43a7e6
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 0x43a7d0
mov ecx, esi
tzcnt eax, eax
add eax, ebx
and eax, edi
movzx ebx, byte [ecx + eax]
test bl, bl
js 0x43a80e
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 0x43a821
cmp dword [esp + 0xc4], 0
je 0x43a94a
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 0x43a910
add edx, ecx
mov eax, ebx
mov esi, edx
sub eax, edi
sub esi, edi
cmp eax, esi
jae 0x43a8bd
add esi, edi
jb 0x43b421
xor edx, edx
cmp esi, 0xaaaaaab
setb al
test ebx, ebx
je 0x43a8c8
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 0x43a8ca
mov esi, ebx
cmp edi, esi
je 0x43a918
jmp 0x43a2b0
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 0x43a932
mov esi, dword [esp + 0x10]
cmp ecx, 0x80000001
jne 0x43b41d
nop word [eax + eax]
cmp edi, esi
jne 0x43a2b0
lea ecx, [esp + 0xb0]
mov edx, edi
call fcn.00437150
mov edi, dword [esp + 0xb8]
jmp 0x43a2b0
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], esi
cmp edi, esi
jne 0x43a2b0
jmp 0x43a918
lea ecx, [esp + 0xbc]
mov edx, 1
push dword [esp + 0x10]
push dword [esp + 8]
call fcn.00460df0
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 0x43a9b6
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 0x43a9a0
mov edi, esi
tzcnt eax, eax
add eax, ecx
mov ecx, dword [esp + 0x14]
and eax, edi
cmp byte [ecx + eax], 0
js 0x43a821
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
or eax, 0x10000
tzcnt eax, eax
movzx eax, ax
jmp 0x43a821
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 0x43ac8f
mov edx, dword [esi]
lea ecx, [esp + 0x40]
push 6
push str.ARGS:_nOPTIONS:_nSUBCOMMANDS
push dword [esi + 4]
call fcn.00439cc0
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b247
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x43aa7c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b45f
mov dword [0x5970d8], eax
push 0x28
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b45f
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 0x43aaeb
jmp 0x43ab1b
add esi, 4
cmp esi, ebx
je 0x43ad0b
mov edi, dword [esi]
mov eax, dword [edi + 0x138]
test al, 0x10
jne 0x43aae0
mov ecx, eax
and ecx, 0x80080
cmp ecx, 0x80000
je 0x43aae0
jmp 0x43ab37
add esi, 4
cmp esi, ebx
je 0x43ad0b
mov edi, dword [esi]
mov eax, dword [edi + 0x138]
test al, 0x10
jne 0x43ab10
mov ecx, eax
and ecx, 0x40080
cmp ecx, 0x40000
je 0x43ab10
add esi, 4
test al, 0x20
mov dword [esp + 4], edx
jne 0x43ab55
cmp dword [edi + 0x50], 0
jne 0x43ab55
cmp dword [edi + 0x7c], 0x110000
jne 0x43ac1a
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], 0x57502c
call fcn.00453ca0
test al, al
jne 0x43b46e
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.004b4560
mov ecx, dword [esp + 8]
cmp ecx, eax
cmovbe ecx, eax
cmp dword [esp + 0xf0], 0
mov dword [esp + 8], ecx
je 0x43ac1a
push dword [esp + 0x18]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x3c]
cmp edx, dword [esp + 0x34]
je 0x43ac24
jmp 0x43ac31
mov edx, dword [esp + 4]
cmp edx, dword [esp + 0x34]
jne 0x43ac31
lea ecx, [esp + 0x34]
call fcn.004b4b10
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 0x43aacd
jmp 0x43ad0e
mov dword [esp + 0x1c], 0x585480
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 0x43aa34
cmp dword [esp + 0x24], 0
jne 0x43adca
mov al, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
jne 0x43ae2e
cmp byte [esp + 0x90], 0
je 0x43aea5
test byte [esp + 0x18], 1
jne 0x43acec
mov eax, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [eax]
push 2
push 0x575b71
push dword [eax + 4]
call fcn.00437c70
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3aa
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0xe8]
test eax, eax
je 0x43b323
mov esi, dword [ecx + 0xec]
jmp 0x43b32d
mov ecx, dword [esp]
mov ebx, edx
mov edx, dword [esp + 0x8c]
push dword [esp + 8]
push dword [esp + 0x2c]
call fcn.0043e840
add esp, 8
test ebx, ebx
je 0x43ad7b
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.0043ea60
add esp, 0x10
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b2e8
add edi, 4
cmp ebx, edi
jne 0x43ad40
cmp dword [esp + 0x34], 0
je 0x43ad93
push dword [esp + 4]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x24], 0
mov edi, dword [esp + 0x14]
je 0x43ae17
mov eax, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [eax]
push 2
push 0x575b71
push dword [eax + 4]
call fcn.00437c70
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b247
mov esi, dword [esp]
mov edx, dword [esi]
lea ecx, [esp + 0x40]
push 9
push 0x57523e
push dword [esi + 4]
call fcn.00439cc0
add esp, 0xc
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b247
lea ecx, [esp + 0x40]
mov edx, esi
push dword [esp + 0x24]
push dword [esp + 0x8c]
call fcn.0043b490
add esp, 8
movzx ecx, byte [esp + 0x40]
cmp cl, 4
jne 0x43b247
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
je 0x43acaf
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43ae56
mov ecx, dword [esp + 0x1c]
lea eax, [eax*4 + 0x13]
and eax, 0xfffffff0
sub ecx, eax
push dword [ecx - 4]
push 0
push dword [0x5970d8]
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 0x43aed3
cmp dword [esp + 0x20], 0
je 0x43ae93
push dword [esp + 0xe0]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc]
cmp byte [esp + 0x90], 0
jne 0x43acbd
cmp dword [esp + 0x2c], 0
mov byte [eax], 4
jne 0x43b2a4
jmp 0x43b261
mov esi, dword [esp + 0x10]
mov eax, dword [esp]
add esi, 0xc
cmp esi, dword [esp + 0xf0]
je 0x43ae78
mov ecx, dword [esi]
test ecx, ecx
je 0x43ae78
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 0x43aec0
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 0x43af3e
add esi, 0x140
add ebx, 0xfffffec0
je 0x43aec0
cmp dword [esi - 0xd0], 0
je 0x43af30
mov eax, dword [esi - 0xcc]
test eax, eax
je 0x43af30
cmp dword [esi - 0xc8], edi
jne 0x43af30
push edi
push dword [esp + 0xc]
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x43af30
mov eax, dword [esi - 8]
test al, 0x10
jne 0x43af30
test eax, 0x80000
jne 0x43af80
cmp byte [esp + 4], 0
jne 0x43af9b
cmp byte [esp + 4], 0
sete cl
test eax, 0x40000
sete dl
test cl, dl
jne 0x43af9b
and eax, 0x80
je 0x43af30
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
lea edi, [esi - 0x140]
test eax, eax
jne 0x43afc3
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x43b450
mov dword [0x5970d8], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x43b450
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 0x43b119
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 0x43b03e
cmp esi, ecx
lea esi, [esi + 0x140]
je 0x43b0ed
cmp dword [esi - 0xd0], 0
je 0x43b030
mov eax, dword [esi - 0xcc]
test eax, eax
je 0x43b030
cmp dword [esi - 0xc8], ebx
jne 0x43b030
push ebx
push edi
push eax
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x43b030
mov eax, dword [esi - 8]
test al, 0x10
jne 0x43b030
test eax, 0x80000
jne 0x43b081
cmp byte [esp + 4], 0
jne 0x43b0a0
cmp byte [esp + 4], 0
sete cl
test eax, 0x40000
sete dl
test cl, dl
mov ecx, dword [esp + 0x14]
jne 0x43b0a0
and eax, 0x80
je 0x43b030
mov ebx, dword [esp + 8]
mov eax, dword [esp]
lea edi, [esi - 0x140]
cmp ebx, dword [esp + 0x40]
je 0x43b0ce
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 0x43b006
jmp 0x43b0f4
lea ecx, [esp + 0x40]
mov edx, ebx
call fcn.004378c0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp]
mov dword [esp + 0x84], edx
jmp 0x43b0b3
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 0x43b239
test byte [esp + 0x18], 1
mov dword [esp + 0x14], edx
je 0x43b13c
jmp 0x43b162
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 0x43b162
mov edx, dword [eax]
mov ecx, ebx
push 2
push 0x575b71
push dword [eax + 4]
call fcn.00437c70
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3f4
mov eax, dword [esp]
lea ecx, [esp + 0xd4]
lea esi, [esp + 0x110]
mov dword [esp + 0x40], 0x575254
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], 0x461c30
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x4c], 1
call fcn.0042a380
mov edx, dword [ebx]
lea ecx, [esp + 0x34]
push esi
push dword [ebx + 4]
call fcn.00440520
add esp, 8
movzx eax, byte [esp + 0x34]
cmp al, 4
jne 0x43b3dc
mov ecx, edi
mov edx, ebx
push dword [esp + 8]
mov edi, dword [esp + 8]
push edi
call fcn.0043b490
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3e6
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
test edx, edx
je 0x43b221
push edi
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
add esi, 0xc
cmp esi, dword [esp + 0xf0]
jne 0x43aed3
jmp 0x43ae78
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 4]
test edx, edx
jne 0x43b213
jmp 0x43b221
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 0x43b289
mov ecx, dword [esp + 0x1c]
lea eax, [eax*4 + 0x13]
and eax, 0xfffffff0
sub ecx, eax
push dword [ecx - 4]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x20], 0
je 0x43b2a4
push dword [esp + 0xe0]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x94], 0
je 0x43b2c2
push dword [esp + 0x88]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x98], 0
je 0x43b2e0
push dword [esp + 0x8c]
push 0
push dword [0x5970d8]
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 0x43b31a
push dword [esp + 4]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xc]
mov ecx, ebx
mov byte [eax], bl
jmp 0x43b261
mov esi, 0xb
mov eax, 0x575247
mov edi, dword [esp]
lea ecx, [esp + 0x40]
mov edx, dword [edi]
push esi
push eax
push dword [edi + 4]
call fcn.00439cc0
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3aa
mov edx, dword [edi]
lea ecx, [esp + 0x40]
push 2
push 0x582e46
push dword [edi + 4]
call fcn.00439cc0
add esp, 0xc
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3aa
mov eax, dword [edi + 0xc]
lea ecx, [esp + 0x40]
mov edx, edi
push dword [eax + 0x12c]
push dword [eax + 0x128]
call fcn.0043c2a0
add esp, 8
movzx eax, byte [esp + 0x40]
cmp al, 4
jne 0x43b3aa
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], 0
mov byte [eax], 4
jne 0x43b2a4
jmp 0x43b261
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 0x43b2a4
jmp 0x43b261
mov edx, dword [esp + 0x10]
push 0x585d84
call fcn.00469a50
mov ecx, dword [esp + 0x35]
mov edx, dword [esp + 0x38]
jmp 0x43b3fc
mov ecx, dword [esp + 0x41]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xc]
jmp 0x43b404
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 0x43b289
push edi
jmp 0x43b27c
test ecx, ecx
jne 0x43b426
call fcn.00429f00
mov edx, dword [esp + 0x3c]
call fcn.00429f40
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 0x5765ec
push 0x57658c
push eax
call fcn.0046f150
mov ecx, 4
mov edx, 0x10
call fcn.00429f40
mov ecx, 4
mov edx, 0x28
call fcn.00429f40
lea eax, [esp + 0xd4]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_string.rs
mov edx, 0x37
push 0x586194
push 0x575044
push eax
call fcn.0046f150
nop