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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x14c
movzx esi, byte [ecx + 0xe]
mov eax, esi
test al, al
jne 0x47c280
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [esp], edi
call dword [eax + 0x44]
sub esp, 4
cmp byte [ebx + 0xe], 0
je 0x47c26e
mov ecx, ebx
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call method.xmrig::SelfSelectClient.getBlockTemplate__
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x34]
or eax, dword [edx + 0x30]
je 0x47c238
mov eax, dword [ecx + 0x664]
mov edx, dword [ecx + 0x660]
mov edi, eax
or edi, edx
je 0x47c238
mov edi, dword [ebp + 8]
cmp eax, dword [edi + 0x3c]
jb 0x47c2b7
ja 0x47c660
cmp edx, dword [edi + 0x38]
ja 0x47c660
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], 4
mov dword [esp + 4], 8
add eax, 4
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x654]
add eax, 0x4e
mov dword [esp], eax
call method.xmrig::Cvt.toHex_char__unsigned_int__unsigned_char_const__unsigned_int_
xor eax, eax
mov dword [esp], 0xc
mov dword [ebp - 0xb0], 0
mov word [ebp - 0xa4], ax
mov eax, 3
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
mov word [ebp - 0xa2], ax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0x400
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
call sym.operator_new_unsigned_int_
mov dword [eax], 0x10000
mov dword [esp], 1
mov edi, eax
call sym.operator_new_unsigned_int_
mov dword [edi + 4], eax
mov dword [esp], 0x20
mov dword [ebp - 0xd0], eax
call sym._malloc
mov edx, dword [ebp - 0xd0]
mov dword [edi + 8], eax
lea ecx, [ebp - 0x78]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov byte [eax + 0xc], 1
mov dword [eax + 4], edx
lea edx, [eax + 0x10]
mov dword [eax + 8], 1
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x9c], edi
mov dword [eax], edx
xor eax, eax
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xb4], ax
mov eax, 4
mov dword [ebp - 0xbc], 0
mov word [ebp - 0xb2], ax
lea eax, [ebx + 0x654]
mov dword [ebp - 0xb8], 0
mov dword [esp], eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xdc], eax
call method.xmrig::String.toJSON___const
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xbc]
sub esp, 4
mov ecx, dword [ebp - 0xb8]
cmp edx, eax
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], ecx
jb 0x47c54d
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
jne 0x47cbaf
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe8], 0x10
test eax, eax
je 0x47cee8
mov dword [ebp - 0xdc], 0x100
mov eax, dword [edi + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xf0], ecx
sub ecx, dword [ebp - 0xd8]
lea ecx, [eax + ecx + 0x10]
mov dword [ebp - 0xf8], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x100], ecx
mov ecx, dword [ebp - 0xd0]
cmp dword [ebp - 0xf8], ecx
je 0x47cec2
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xf0]
add ecx, edx
cmp ecx, dword [ebp - 0x100]
mov dword [ebp - 0xf8], edx
mov edx, ecx
ja 0x47cf79
mov edi, dword [ebp - 0xf0]
mov dword [eax + 4], edx
lea edi, [eax + edi + 0x10]
test edi, edi
je 0x47cf64
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x47c529
mov eax, dword [ebp - 0xd8]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp + 4], eax
call sym._memcpy
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xd0], edi
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xbc], eax
lea eax, [edx + 1]
shl edx, 4
add edx, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x78]
mov dword [edx], eax
mov eax, dword [ebp - 0x74]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x70]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x6c]
mov dword [edx + 0xc], eax
lea eax, [ebp - 0xc0]
mov dword [esp + 0xc], str.submitblock
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov dword [esp + 4], eax
lea eax, [ebp - 0xb0]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0xdc], eax
call method.xmrig::JsonRequest.create_rapidjson::GenericDocument_rapidjson::UTF8_char___rapidjson::MemoryPoolAllocator_rapidjson::CrtAllocator___rapidjson::CrtAllocator___long_long_
mov eax, dword [ebp + 8]
lea edi, [ebx + 0x638]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe4], edx
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xf0], eax
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf8], eax
call method.std::chrono::_V2::steady_clock.now__
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.___divdi3
mov dword [ebp - 0x100], eax
mov eax, dword [ebx + 0x63c]
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xd8], edi
test eax, eax
je 0x47cd2b
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov dword [ebp - 0xe0], ebx
jmp 0x47c650
jg 0x47c647
cmp dword [eax + 0x10], ecx
jb 0x47c655
mov edi, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x47c673
cmp dword [eax + 0x14], edx
jge 0x47c640
mov eax, dword [eax + 0xc]
jmp 0x47c64c
add dword [ebx + 0x668], 1
adc dword [ebx + 0x66c], 0
jmp 0x47c238
cmp dword [ebp - 0xd8], edi
mov dword [ebp - 0xd0], edi
mov ebx, dword [ebp - 0xe0]
je 0x47c69b
cmp edx, dword [edi + 0x14]
jg 0x47c794
jl 0x47c69b
cmp ecx, dword [edi + 0x10]
jae 0x47c794
mov dword [esp], 0x50
call sym.operator_new_unsigned_int_
mov edx, dword [ebx + 0x28]
mov edi, dword [ebx + 0x2c]
mov ecx, 0xe
mov dword [ebp - 0x108], eax
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edi
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xe0], edi
lea edi, [eax + 0x18]
mov edx, dword [ebp - 0xd0]
xor eax, eax
cmp dword [ebp - 0xd8], edx
rep stosd dword es:[edi], eax
je 0x47cc7d
mov eax, edx
mov edx, dword [edx + 0x10]
mov eax, dword [eax + 0x14]
cmp dword [ebp - 0xe0], eax
jle 0x47c75c
mov eax, dword [ebp - 0xd0]
cmp dword [ebx + 0x644], eax
je 0x47cd8b
mov dword [esp], eax
call method.std._Rb_tree_increment_std::_Rb_tree_node_base_
mov edi, eax
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edi + 0x14]
jle 0x47ce95
mov edi, dword [ebx + 0x63c]
test edi, edi
je 0x47d040
mov ecx, dword [ebp - 0xe0]
jmp 0x47c750
jl 0x47c741
mov eax, dword [ebp - 0x104]
cmp eax, dword [edi + 0x10]
jae 0x47c755
mov eax, dword [edi + 8]
mov edx, esi
test eax, eax
je 0x47cf49
mov edi, eax
cmp ecx, dword [edi + 0x14]
jle 0x47c734
mov eax, dword [edi + 0xc]
xor edx, edx
jmp 0x47c746
jl 0x47cc00
cmp dword [ebp - 0x104], edx
jb 0x47cc00
cmp dword [ebp - 0xe0], eax
jg 0x47c6f3
cmp dword [ebp - 0x104], edx
ja 0x47c6f3
mov eax, dword [ebp - 0x108]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xf8]
mov edi, 1
mov ecx, dword [ebp - 0xf4]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0xe8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0xe4]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0xf0]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0xec]
mov dword [eax + 0x28], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x100]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebp - 0xfc]
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], ecx
cmp byte [ebx + 0xd], 0
jne 0x47c832
mov ecx, dword [ebx + 0x18]
mov esi, 1
mov eax, ecx
cdq
cmp dword [ebx + 0x24], edx
jg 0x47c830
jl 0x47cba8
cmp dword [ebx + 0x20], ecx
jb 0x47cba8
nop
mov edi, esi
mov eax, dword [ebx]
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47cd18
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
movzx eax, byte [eax + 0x70]
lea esi, [ebp - 0xc8]
mov dword [esp], str._json_rpc
mov ecx, esi
mov dword [ebp - 0xd0], eax
call method.xmrig::String.String_char_const_
mov eax, dword [ebx]
sub esp, 4
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47cd0f
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
movzx eax, word [eax + 0x88]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47cd06
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0xd0]
add eax, 0x78
lea ecx, [ebp - 0x78]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], 3
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0xdc]
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0xd8]
mov dword [esp + 8], edx
call sym.__ZN5xmrig12FetchRequestC2E13llhttp_methodRKNS_6StringEtS4_RKN9rapidjson12GenericValueINS5_4UTF8IcEENS5_19MemoryPoolAllocatorI
mov eax, dword [ebp - 0xc8]
sub esp, 0x1c
test eax, eax
je 0x47c8f9
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebx + 0x64c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x650]
test eax, eax
mov dword [ebp - 0xc4], eax
je 0x47c91a
lock add dword [eax + 8], 1
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
cmp eax, method.xmrig::SelfSelectClient.tag___const
jne 0x47ccfd
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov dword [esp + 8], esi
lea esi, [ebp - 0x78]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call method.xmrig.fetch_char_const__xmrig::FetchRequest__std::weak_ptr_xmrig::IHttpListener__const__int__unsigned_long_long_
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
je 0x47c972
lock sub dword [ecx + 8], 1
je 0x47cd21
mov esi, dword [ebx + 0x670]
mov edi, dword [ebx + 0x674]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
add esi, 1
adc edi, 0
mov dword [ebx + 0x670], esi
mov dword [ebx + 0x674], edi
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xcc], edx
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xd4], edx
mov edx, dword [ebx + 0x664]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x660]
mov dword [ebp - 0xe4], edx
mov edx, dword [ebx + 0x66c]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x668]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xf0], eax
call method.xmrig::Tags.origin__
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_e_1_32msubmitted_to_origin_daemone_0m___lld__lld___diff_e_0_37m_llue_0m_vs._e_0_37m_llue_0m
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
mov dword [esp], 6
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
call method.xmrig::Log.print_xmrig::Log::Level__char_const__..._
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x47ca6e
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x47ca7d
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x47ca8c
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x50]
cmp eax, edx
je 0x47ca9e
mov dword [esp], eax
call sym.operator_delete_void_
mov esi, dword [ebp - 0x68]
test esi, esi
je 0x47cafc
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0x70]
mov dword [esp], eax
call sym.__ZNSt8_Rb_treeIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIS6_S6_ESt10_Select1stIS8_ESt4lessIS6_ESaIS8_EE8_M
mov eax, dword [esi + 0x28]
lea edx, [esi + 0x30]
sub esp, 4
mov edi, dword [esi + 8]
cmp eax, edx
je 0x47cacb
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [esi + 0x10]
lea edx, [esi + 0x18]
cmp eax, edx
je 0x47caf0
mov dword [esp], eax
call sym.operator_delete_void_
mov dword [esp], esi
call sym.operator_delete_void_
test edi, edi
je 0x47cafc
mov esi, edi
jmp 0x47caa5
mov dword [esp], esi
call sym.operator_delete_void_
test edi, edi
jne 0x47cae9
mov esi, dword [ebp - 0x9c]
test esi, esi
je 0x47cb4b
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x47cb43
mov edx, dword [eax + 8]
cmp edx, 1
jbe 0x47cb7d
sub edx, 1
mov dword [eax + 8], edx
mov dword [esp], esi
call sym.operator_delete_void_
mov eax, dword [ebp - 0x90]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x94]
mov dword [esp], eax
call sym.operator_delete_void_
jmp 0x47c238
mov dword [eax], ecx
mov dword [esp], edx
call sym._free
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov ecx, dword [edx + 8]
test ecx, ecx
jne 0x47cb70
cmp byte [eax + 0xc], 0
mov dword [edx + 4], 0
mov edi, dword [eax + 4]
je 0x47cb9e
mov dword [esp], eax
call sym._free
mov dword [esp], edi
call sym.operator_delete_void_
jmp 0x47cb43
xor esi, esi
jmp 0x47c830
mov ecx, eax
lea eax, [eax + 1]
shr eax, 1
add eax, ecx
cmp ecx, eax
mov dword [ebp - 0xe8], eax
jae 0x47c54d
shl ecx, 4
shl eax, 4
cmp dword [ebp - 0xd0], 0
mov dword [ebp - 0xd8], ecx
je 0x47d102
test eax, eax
jne 0x47d0e9
mov dword [ebp - 0xd0], 0
jmp 0x47c535
mov ecx, dword [ebx + 0x640]
mov eax, dword [ebp - 0xd0]
cmp ecx, eax
mov dword [ebp - 0x10c], ecx
je 0x47ce8e
mov dword [esp], eax
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov edi, eax
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x10c]
cmp eax, dword [edi + 0x14]
jge 0x47ce32
mov edi, dword [ebx + 0x63c]
test edi, edi
je 0x47cf28
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x47cc71
jl 0x47cc62
mov eax, dword [ebp - 0x104]
cmp eax, dword [edi + 0x10]
jae 0x47cc76
mov eax, dword [edi + 8]
mov edx, esi
test eax, eax
je 0x47cde1
mov edi, eax
cmp ecx, dword [edi + 0x14]
jle 0x47cc55
mov eax, dword [edi + 0xc]
xor edx, edx
jmp 0x47cc67
mov edi, dword [ebx + 0x648]
test edi, edi
je 0x47ccad
mov edi, dword [ebx + 0x644]
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edi + 0x14]
jg 0x47cd38
jl 0x47ccad
mov eax, dword [ebp - 0x104]
cmp eax, dword [edi + 0x10]
ja 0x47cd38
mov edx, dword [ebx + 0x63c]
test edx, edx
je 0x47ce59
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0xd0], eax
jmp 0x47cce8
jl 0x47ccd9
cmp dword [ebp - 0x104], edi
jae 0x47ccf6
mov ebx, dword [edx + 8]
mov eax, esi
test ebx, ebx
je 0x47cdb2
mov edx, ebx
mov ecx, dword [edx + 0x14]
cmp dword [ebp - 0xd0], ecx
mov edi, dword [edx + 0x10]
jle 0x47cccf
mov ebx, dword [edx + 0xc]
xor eax, eax
jmp 0x47ccde
mov ecx, ebx
call eax
jmp 0x47c932
mov ecx, ebx
call eax
jmp 0x47c8a8
mov ecx, ebx
call eax
jmp 0x47c883
mov ecx, ebx
call eax
jmp 0x47c84a
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x47c972
mov dword [ebp - 0xd0], edi
jmp 0x47c69b
mov edi, edx
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0xd0]
test eax, eax
jne 0x47cd54
cmp dword [ebp - 0xd8], edi
jne 0x47cd91
mov eax, 1
mov esi, dword [ebp - 0xd8]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0xc], esi
mov esi, dword [ebp - 0x108]
mov dword [esp + 4], esi
call method.std._Rb_tree_insert_and_rebalance_bool__std::_Rb_tree_node_base__std::_Rb_tree_node_base__std::_Rb_tree_node_base_
add dword [ebx + 0x648], 1
mov dword [ebp - 0xd0], esi
jmp 0x47c794
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xe0]
cmp esi, dword [edi + 0x14]
mov eax, 1
jl 0x47cd59
jg 0x47cdae
mov esi, dword [ebp - 0x104]
cmp esi, dword [edi + 0x10]
jb 0x47cd59
xor eax, eax
jmp 0x47cd59
test al, al
mov esi, edi
mov ebx, dword [ebp - 0x10c]
mov edi, edx
jne 0x47ce5f
cmp dword [ebp - 0xe0], ecx
jg 0x47ce1b
jl 0x47cdd6
cmp dword [ebp - 0x104], esi
ja 0x47ce1b
mov dword [ebp - 0xd0], edx
jmp 0x47c786
test dl, dl
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd0], edi
jne 0x47cf2e
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xe0]
cmp esi, dword [eax + 0x14]
jl 0x47c786
jg 0x47ce1b
mov esi, dword [ebp - 0x104]
cmp esi, dword [eax + 0x10]
jbe 0x47c786
test edi, edi
mov dword [ebp - 0xd0], 0
jne 0x47cd42
jmp 0x47c786
jg 0x47ce43
mov eax, dword [ebp - 0x104]
cmp eax, dword [edi + 0x10]
jbe 0x47cc39
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x47cd38
mov edi, dword [ebp - 0xd0]
jmp 0x47cd42
mov edx, dword [ebp - 0xd0]
cmp dword [ebx + 0x640], edx
je 0x47cd36
mov dword [esp], edx
mov dword [ebp - 0xd0], edx
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov edx, dword [ebp - 0xd0]
mov esi, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov edi, edx
mov edx, eax
jmp 0x47cdc4
mov edi, eax
jmp 0x47cd42
jl 0x47cea6
mov eax, dword [ebp - 0x104]
cmp eax, dword [edi + 0x10]
jae 0x47c71e
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x47cd8b
mov dword [ebp - 0xd0], edi
jmp 0x47cd42
mov ecx, dword [ebp - 0xf0]
sub ecx, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xdc]
cmp ecx, dword [ebp - 0x100]
ja 0x47c4cc
mov dword [eax + 4], ecx
jmp 0x47c535
mov eax, 0x100
mov edx, eax
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
mov ecx, dword [eax]
add edx, dword [ecx + 4]
cmp edx, dword [ecx]
ja 0x47cfd9
mov edx, dword [eax]
mov eax, dword [edx + 4]
lea edi, [edx + eax + 0x10]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], edi
mov dword [edx + 4], eax
mov edx, dword [ebp - 0xdc]
jmp 0x47c535
mov edi, dword [ebp - 0xd8]
cmp ecx, edi
je 0x47ce1b
mov dword [esp], edi
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov dword [ebp - 0xd0], eax
jmp 0x47cdf5
test dl, dl
mov dword [ebp - 0xd0], edi
je 0x47cdf5
cmp dword [ebx + 0x640], edi
jne 0x47cf36
jmp 0x47ce1b
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xd0], 0
jmp 0x47c535
mov eax, dword [ebp - 0xf8]
cmp dword [edi], eax
cmovae eax, dword [edi]
cmp dword [edi + 4], 0
mov dword [ebp - 0xf0], eax
je 0x47d072
mov eax, dword [ebp - 0xf0]
add eax, 0x10
je 0x47cf64
mov dword [esp], eax
call sym._malloc
test eax, eax
je 0x47cf64
mov edx, dword [ebp - 0xf0]
mov dword [eax + 4], 0
mov dword [ebp - 0xf0], 0
mov dword [eax], edx
mov edx, dword [edi + 8]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov dword [edx], eax
mov edx, dword [ebp - 0xf8]
jmp 0x47c4ee
mov eax, dword [ebp - 0xd8]
cmp dword [edi], eax
cmovae eax, dword [edi]
cmp dword [edi + 4], 0
mov dword [ebp - 0xd0], eax
je 0x47d113
mov eax, dword [ebp - 0xd0]
add eax, 0x10
je 0x47cf64
mov dword [esp], eax
call sym._malloc
test eax, eax
je 0x47cf64
mov edx, dword [ebp - 0xd0]
mov dword [eax + 4], 0
mov dword [eax], edx
mov edx, dword [edi + 8]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov dword [edx], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 8]
jmp 0x47cf05
mov edi, dword [ebp - 0xd8]
jmp 0x47cf57
lea eax, [ebp - 0xb0]
mov dword [esp], 1
mov dword [ebp - 0xdc], eax
call sym.operator_new_unsigned_int_
mov edx, dword [edi + 8]
mov dword [edi + 4], eax
mov dword [edx + 4], eax
jmp 0x47cf94
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
cmp ecx, eax
jae 0x47c535
jmp 0x47c494
test eax, eax
jne 0x47ceed
jmp 0x47c535
lea eax, [ebp - 0xb0]
mov dword [esp], 1
mov dword [ebp - 0xdc], eax
call sym.operator_new_unsigned_int_
mov edx, dword [edi + 8]
mov dword [edi + 4], eax
mov dword [edx + 4], eax
jmp 0x47cff4