Function at 0x4383a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [ecx + 4]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], edi
mov edi, dword [ecx]
sub eax, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x78], edi
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x74], eax
je 0x438a7f
mov dword [esp + 0x7c], 1
cmp dword [esp + 0x20], 1
movzx eax, byte [edi]
mov ebx, dword [esp + 0x40]
mov byte [esp + 0x44], al
mov byte [ebx + 0x30], al
je 0x438a87
mov dword [esp + 0x7c], 2
movzx eax, byte [edi + 1]
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x18], 0
mov byte [ebx + 0x31], al
mov ebx, 2
mov ebp, ebx
jmp 0x438425
mov ebp, eax
lea ecx, [ebp*8]
sub ecx, ebp
cmp dword [esp + 0x20], ebp
lea ebx, [ecx - 0xe]
jbe 0x438a87
mov edi, dword [esp + 0x2c]
lea eax, [ebp + 1]
mov dword [esp + 0x7c], eax
movzx edx, byte [edi + eax - 1]
xor edi, edi
mov ecx, edx
and ecx, 0x7f
mov esi, ecx
mov ecx, ebx
xor ebx, ebx
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, ebx
or dword [esp + 0x18], edi
or dword [esp + 0x30], esi
test dl, dl
js 0x438423
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov ebx, ebp
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov dword [edi + 0x3c], edx
lea edx, [ebx + 0x21]
mov dword [edi + 0x38], ebp
cmp edx, esi
ja 0x438a87
add eax, dword [esp + 0x2c]
mov dword [edi + 0x44], 0x20
mov dword [edi + 0x10], edx
mov dword [esp + 0x7c], edx
mov dword [edi + 0x40], eax
mov eax, edi
lea edi, [ebx + 0x25]
cmp edi, esi
ja 0x438a87
mov eax, dword [eax + 0xc]
mov dword [esp + 0x7c], edi
cmp eax, 7
mov dword [esp + 0x38], eax
je 0x438a25
cmp dword [esp + 0x38], 8
je 0x438a10
mov eax, dword [esp + 0x40]
xor ebp, ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], 0
mov dword [eax + 0x14], edi
nop
cmp dword [esp + 0x20], edi
jbe 0x438a87
mov eax, dword [esp + 0x2c]
add edi, 1
mov ecx, ebp
mov dword [esp + 0x7c], edi
xor esi, esi
movzx eax, byte [eax + edi - 1]
mov edx, eax
and edx, 0x7f
shld esi, edx, cl
mov ebx, edx
xor edx, edx
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
cmovne ebx, edx
or dword [esp + 0x30], esi
mov ecx, ebx
add ebp, 7
or dword [esp + 0x18], ecx
test al, al
js 0x4384f0
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
xor ebp, ebp
mov dword [esp + 0x18], 0
mov dword [eax + 0x58], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [eax + 0x5c], ebx
lea esi, [esi]
cmp dword [esp + 0x20], edi
jbe 0x438a87
mov eax, dword [esp + 0x2c]
add edi, 1
mov ecx, ebp
mov dword [esp + 0x7c], edi
xor esi, esi
movzx eax, byte [eax + edi - 1]
mov edx, eax
and edx, 0x7f
shld esi, edx, cl
mov ebx, edx
xor edx, edx
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
cmovne ebx, edx
or dword [esp + 0x30], esi
mov ecx, ebx
add ebp, 7
or dword [esp + 0x18], ecx
test al, al
js 0x438560
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov ebp, dword [esp + 0x2c]
mov dword [eax + 0x60], ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + 0x64], ebx
jmp 0x4385d2
mov edi, ebx
cmp dword [esp + 0x20], edi
jbe 0x438a87
lea ebx, [edi + 1]
xor edx, edx
mov dword [esp + 0x7c], ebx
movzx esi, byte [ebp + ebx - 1]
mov eax, esi
and eax, 0x7f
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x4385fd
mov edx, eax
xor eax, eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
add ecx, 7
mov dword [esp + 0x30], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x34]
or edx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, esi
test al, al
mov dword [esp + 0x1c], edx
js 0x4385d0
mov eax, dword [esp + 0x40]
mov ecx, ebx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [eax + 0x6c], esi
mov dword [eax + 0x68], ebx
mov eax, ebx
xor eax, 1
or edx, eax
je 0x438652
xor eax, eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret 4
cmp dword [esp + 0x20], ecx
jbe 0x438a87
mov eax, dword [esp + 0x2c]
lea ebp, [edi + 2]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x7c], ebp
movzx eax, byte [eax + ecx]
cmp al, 0xff
mov byte [ebx + 0x70], al
jne 0x438643
lea eax, [edi*8]
xor edx, edx
xor ebx, ebx
sub edi, eax
lea eax, [edi - 0xe]
mov dword [esp + 0x30], eax
lea esi, [esi]
lea ecx, [ebp*8]
sub ecx, ebp
add ecx, dword [esp + 0x30]
cmp dword [esp + 0x20], ebp
jbe 0x438a87
mov eax, dword [esp + 0x2c]
add ebp, 1
xor edi, edi
mov dword [esp + 0x7c], ebp
movzx eax, byte [eax + ebp - 1]
mov esi, eax
and esi, 0x7f
shld edi, esi, cl
shl esi, cl
test cl, 0x20
je 0x4386cc
mov edi, esi
xor esi, esi
or edx, esi
or ebx, edi
test al, al
js 0x438690
mov eax, dword [esp + 0x40]
xor ecx, ecx
xor edi, edi
xor esi, esi
mov dword [eax + 0x78], edx
mov dword [eax + 0x7c], ebx
cmp ebp, dword [esp + 0x20]
jae 0x438a87
mov eax, dword [esp + 0x2c]
add ebp, 1
xor edx, edx
mov dword [esp + 0x7c], ebp
movzx ebx, byte [eax + ebp - 1]
mov eax, ebx
and eax, 0x7f
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x438713
mov edx, eax
xor eax, eax
or edi, eax
or esi, edx
add ecx, 7
test bl, bl
js 0x4386e4
cmp dword [esp + 0x38], 8
mov eax, dword [esp + 0x40]
mov dword [eax + 0x80], edi
mov dword [eax + 0x84], esi
je 0x438a68
xor edi, 1
or esi, edi
jne 0x438643
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], edi
jmp 0x438762
mov ebp, esi
cmp dword [esp + 0x20], ebp
jbe 0x438a87
mov eax, dword [esp + 0x2c]
lea esi, [ebp + 1]
xor edx, edx
xor edi, edi
mov dword [esp + 0x7c], esi
movzx ebx, byte [eax + esi - 1]
mov eax, ebx
and eax, 0x7f
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
or dword [esp + 0x44], edx
or dword [esp + 0x30], eax
add ecx, 7
test bl, bl
js 0x438760
cmp dword [esp + 0x20], esi
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x30]
mov dword [eax + 0x8c], edi
mov dword [eax + 0x88], ebx
jbe 0x438a87
mov edi, dword [esp + 0x2c]
lea ecx, [ebp + 2]
mov dword [esp + 0x7c], ecx
movzx edx, byte [edi + esi]
mov byte [eax + 0x90], dl
lea eax, [edx - 2]
cmp al, 1
ja 0x438643
lea edi, [ebp + 0x22]
cmp dword [esp + 0x20], edi
mov ebx, dword [esp + 0x40]
mov dword [ebx + 0x1c], ecx
jb 0x438a87
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x98], 0x20
mov dword [esp + 0x7c], edi
add eax, ecx
cmp dword [esp + 0x38], 8
mov dword [ebx + 0x94], eax
je 0x438bf5
cmp dl, 3
je 0x438c80
xor ecx, ecx
xor ebp, ebp
xor esi, esi
lea esi, [esi]
cmp dword [esp + 0x20], edi
jbe 0x438a87
mov eax, dword [esp + 0x2c]
add edi, 1
xor edx, edx
mov dword [esp + 0x7c], edi
movzx ebx, byte [eax + edi - 1]
mov eax, ebx
and eax, 0x7f
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x43885f
mov edx, eax
xor eax, eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x34]
add ecx, 7
mov dword [esp + 0x30], eax
or ebp, dword [esp + 0x30]
or edx, esi
test bl, bl
mov esi, edx
js 0x438830
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x4c], edx
mov ebx, dword [eax]
mov dword [eax + 0x20], edi
mov dword [eax + 0xa0], ebp
mov dword [eax + 0xa4], edx
add ebx, edi
add edi, ebp
cmp dword [esp + 0x20], edi
mov dword [esp + 0x30], ebx
jb 0x438a87
mov dword [esp + 0x7c], edi
xor ebp, ebp
mov byte [esp + 0x44], 1
xor edx, edx
cmp edx, dword [esp + 0x4c]
jbe 0x438a8c
mov eax, dword [esp + 0x40]
cmp dword [eax + 0xc], 8
je 0x438ddc
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
mov dword [edi + 0x18], eax
jae 0x438a87
lea edx, [eax + 1]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x78]
cmp byte [edx + eax], 0
jne 0x438643
mov edx, dword [edi]
cmp byte [edx + eax], 0
jne 0x438643
mov eax, edi
lea ecx, [esp + 0x74]
add eax, 0xb8
mov dword [esp], eax
call method.xmrig::BlobReader_true_.getVarint_unsigned_long_long_
push edx
cmp byte [esp + 0x48], 0
mov eax, 1
je 0x438645
mov edi, dword [esp + 0x40]
mov eax, dword [edi + 0xb8]
mov edx, dword [edi + 0xbc]
lea ecx, [edi + 0xc0]
mov dword [esp + 0x20], eax
add eax, 1
mov dword [esp + 0x24], edx
shl eax, 5
mov dword [esp], eax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.resize_unsigned_int_
push eax
mov edx, dword [edi + 0xc0]
mov eax, dword [edi]
mov dword [esp + 8], edx
mov edx, dword [edi + 0x18]
add edx, eax
mov dword [esp + 4], edx
add eax, dword [edi + 0x14]
mov dword [esp], eax
call method.xmrig::BlockTemplate.calculateMinerTxHash_unsigned_char_const__unsigned_char_const__unsigned_char_
mov eax, dword [edi + 0xbc]
or eax, dword [edi + 0xb8]
je 0x4389f5
mov eax, dword [esp + 0x7c]
lea edx, [eax + 0x20]
cmp edx, dword [esp + 0x74]
ja 0x438a87
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, 0x20
mov ebx, dword [esp + 0x40]
add eax, dword [esp + 0x78]
mov dword [esp + 0x7c], edx
mov edx, dword [ebx + 0xc0]
mov ebp, dword [eax]
add edx, ecx
add esi, 1
adc edi, 0
mov dword [edx], ebp
mov ebp, dword [eax + 4]
mov dword [edx + 4], ebp
mov ebp, dword [eax + 8]
mov dword [edx + 8], ebp
mov ebp, dword [eax + 0xc]
mov dword [edx + 0xc], ebp
mov ebp, dword [eax + 0x10]
mov dword [edx + 0x10], ebp
mov ebp, dword [eax + 0x14]
mov dword [edx + 0x14], ebp
mov ebp, dword [eax + 0x18]
mov dword [edx + 0x18], ebp
mov eax, dword [eax + 0x1c]
mov dword [edx + 0x1c], eax
cmp dword [ebx + 0xbc], edi
jae 0x438caa
mov ecx, dword [esp + 0x40]
call method.xmrig::BlockTemplate.calculateMerkleTreeHash__
movzx eax, byte [esp + 0x48]
jmp 0x438645
lea edi, [ebx + 0x9d]
cmp dword [esp + 0x20], edi
jb 0x438a87
mov dword [esp + 0x7c], edi
jmp 0x4384d6
cmp byte [esp + 0x44], 0x11
jbe 0x4384d6
lea eax, [ebx + 0x65]
cmp esi, eax
jb 0x438a87
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
add edi, ecx
mov dword [edx + 0x4c], 0x40
mov dword [edx + 0x48], edi
lea edi, [ebx + 0x67]
cmp esi, edi
jb 0x438a87
movzx eax, word [ecx + ebx + 0x65]
mov dword [esp + 0x7c], edi
mov word [edx + 0x50], ax
jmp 0x4384d6
cmp esi, 0
ja 0x438744
cmp edi, 1
jbe 0x438643
jmp 0x438744
mov dword [esp + 0x7c], 0
call method.xmrig::BlobReader_true_.outOfRange____clone_.isra.20_
jb 0x438a98
cmp ebp, dword [esp + 0x2c]
jae 0x4388c0
xor edx, edx
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x38], edx
jmp 0x438aa6
mov ebp, esi
cmp dword [esp + 0x2c], ebp
jbe 0x438a87
mov eax, dword [esp + 0x30]
lea esi, [ebp + 1]
xor edx, edx
movzx ebx, byte [eax + esi - 1]
mov eax, ebx
and eax, 0x7f
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x438acd
mov edx, eax
xor eax, eax
mov dword [esp + 0x20], edi
or dword [esp + 0x38], edx
add ecx, 7
or dword [esp + 0x20], eax
test bl, bl
mov edi, dword [esp + 0x20]
js 0x438aa4
mov edx, dword [esp + 0x38]
mov eax, edi
mov ebx, esi
xor eax, 2
or eax, edx
je 0x438b94
mov eax, edi
xor eax, 3
or eax, edx
je 0x438b33
xor edi, 1
or edx, edi
jne 0x438643
cmp byte [esp + 0x44], 0
je 0x438b1c
mov eax, dword [esp + 0x40]
add ebx, dword [eax + 0x20]
mov dword [eax + 0x24], ebx
add ebp, 0x21
cmp dword [esp + 0x2c], ebp
jb 0x438a87
mov byte [esp + 0x44], 0
jmp 0x4388b4
mov ebp, dword [esp + 0x30]
xor ecx, ecx
xor edi, edi
cmp dword [esp + 0x2c], ebx
jbe 0x438a87
add ebx, 1
movzx esi, byte [ebp + ebx - 1]
mov eax, esi
and eax, 0x7f
shl eax, cl
test cl, 0x20
je 0x438b5b
xor eax, eax
or edi, eax
mov eax, esi
add ecx, 7
test al, al
js 0x438b3b
mov edx, dword [esp + 0x40]
lea ebp, [edi + ebx]
mov eax, dword [edx + 0x20]
add eax, ebx
cmp dword [esp + 0x2c], ebp
mov dword [edx + 0x2c], eax
jb 0x438a87
add ebx, dword [esp + 0x30]
mov dword [edx + 0xb4], edi
mov dword [edx + 0xb0], ebx
jmp 0x4388b4
mov ebp, dword [esp + 0x30]
xor ecx, ecx
xor edi, edi
cmp dword [esp + 0x2c], ebx
jbe 0x438a87
add ebx, 1
movzx esi, byte [ebp + ebx - 1]
mov eax, esi
and eax, 0x7f
shl eax, cl
test cl, 0x20
je 0x438bbc
xor eax, eax
or edi, eax
mov eax, esi
add ecx, 7
test al, al
js 0x438b9c
mov edx, dword [esp + 0x40]
lea ebp, [edi + ebx]
mov eax, dword [edx + 0x20]
add eax, ebx
cmp dword [esp + 0x2c], ebp
mov dword [edx + 0x28], eax
jb 0x438a87
add ebx, dword [esp + 0x30]
mov dword [edx + 0xac], edi
mov dword [edx + 0xa8], ebx
jmp 0x4388b4
cmp dl, 2
jne 0x438643
lea eax, [esp + 0x68]
lea ecx, [esp + 0x74]
mov dword [esp], eax
call method.xmrig::BlobReader_true_.getVarint_unsigned_long_long_
sub esp, 4
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x68]
mov edi, dword [esp + 0x74]
cmp edi, eax
mov dword [esp + 0x20], edi
jb 0x438a87
mov dword [esp + 0x7c], eax
jbe 0x438a87
mov edi, dword [esp + 0x78]
lea ecx, [eax + 1]
mov dword [esp + 0x7c], ecx
movzx eax, byte [edi + eax]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x40]
mov byte [edi + 0x9c], al
mov eax, edi
mov edi, dword [edi + 0x80]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x44], edi
cmp eax, 0
mov dword [esp + 0x4c], eax
ja 0x438cd1
cmp edi, 1
ja 0x438cd1
mov edi, dword [esp + 0x7c]
jmp 0x438826
cmp dword [esp + 0x20], edi
jbe 0x438a87
mov eax, dword [esp + 0x2c]
add ebp, 0x23
mov dword [esp + 0x7c], ebp
movzx eax, byte [eax + edi]
mov edi, dword [esp + 0x40]
mov byte [edi + 0x9c], al
mov edi, ebp
jmp 0x438826
ja 0x438cb8
cmp dword [ebx + 0xb8], esi
jb 0x4389f5
mov eax, dword [esp + 0x7c]
add ecx, 0x20
lea edx, [eax + 0x20]
cmp edx, dword [esp + 0x74]
jbe 0x4389a5
jmp 0x438a87
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x438ce5
mov ecx, eax
cmp dword [esp + 0x20], ecx
jbe 0x438a87
mov edi, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esp + 0x7c], eax
cmp byte [edi + eax - 1], 0
js 0x438ce3
mov edi, dword [esp + 0x20]
cmp edi, eax
jbe 0x438a87
mov ebx, dword [esp + 0x2c]
lea edx, [ecx + 2]
mov dword [esp + 0x7c], edx
cmp byte [ebx + eax], 2
jne 0x438643
lea eax, [ecx + 0x22]
cmp edi, eax
jb 0x438a87
lea edx, [ecx*8]
mov dword [esp + 0x7c], eax
xor ebx, ebx
xor ebp, ebp
sub ecx, edx
lea edi, [ecx - 0xee]
mov dword [esp + 0x30], edi
nop
lea esi, [esi]
lea ecx, [eax*8]
sub ecx, eax
add ecx, dword [esp + 0x30]
cmp dword [esp + 0x20], eax
je 0x438a87
mov edi, dword [esp + 0x2c]
add eax, 1
mov dword [esp + 0x7c], eax
movzx edx, byte [edi + eax - 1]
xor edi, edi
mov esi, edx
and esi, 0x7f
shld edi, esi, cl
shl esi, cl
test cl, 0x20
je 0x438d8c
mov edi, esi
xor esi, esi
or ebx, esi
or ebp, edi
test dl, dl
js 0x438d50
add eax, ebx
cmp dword [esp + 0x20], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
jb 0x438a87
jbe 0x438e14
add dword [esp + 0x38], 1
lea ecx, [eax + 1]
mov edx, dword [esp + 0x4c]
adc dword [esp + 0x3c], 0
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x7c], ecx
xor eax, edi
xor edx, ebp
or edx, eax
jne 0x438ce5
jmp 0x438c70
lea eax, [esp + 0x58]
lea ecx, [esp + 0x74]
mov dword [esp], eax
call method.xmrig::BlobReader_true_.getVarint_unsigned_long_long_
push ecx
lea eax, [esp + 0x60]
lea ecx, [esp + 0x74]
mov dword [esp], eax
call method.xmrig::BlobReader_true_.getVarint_unsigned_long_long_
push ebx
lea eax, [esp + 0x68]
lea ecx, [esp + 0x74]
mov dword [esp], eax
call method.xmrig::BlobReader_true_.getVarint_unsigned_long_long_
push esi
jmp 0x4388ce
mov dword [esp + 0x7c], eax
jmp 0x438a87