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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14c
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x34]
or eax, dword [ebx + 0x30]
je 0x47b2b9
mov eax, dword [ecx + 0x664]
mov edx, dword [ecx + 0x660]
mov edi, eax
or edi, edx
jne 0x47b2c3
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
cmp eax, dword [ebx + 0x3c]
jae 0x47b660
lea eax, [ebx + 4]
mov dword [esp + 0xc], 4
mov dword [esp + 4], 8
mov esi, ecx
mov dword [esp + 8], eax
mov eax, dword [ecx + 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, [esi + 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 eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc0]
sub esp, 4
mov ecx, dword [ebp - 0xb8]
cmp edx, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], ecx
jb 0x47b55b
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
jne 0x47bc80
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe8], 0x10
test eax, eax
je 0x47bf64
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 - 0x100], ecx
mov ecx, dword [eax]
mov dword [ebp - 0xf8], ecx
mov ecx, dword [ebp - 0xd0]
cmp dword [ebp - 0x100], ecx
je 0x47bf3e
mov edx, dword [ebp - 0xdc]
mov ecx, edx
mov dword [ebp - 0x100], edx
mov edx, dword [ebp - 0xf0]
add edx, ecx
cmp edx, dword [ebp - 0xf8]
ja 0x47c065
mov edi, dword [ebp - 0xf0]
mov dword [eax + 4], edx
lea edi, [eax + edi + 0x10]
test edi, edi
je 0x47c03f
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x47b537
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 [esi + 0x28]
mov edx, dword [esi + 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 [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
lea edi, [esi + 0x638]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
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 - 0xf8], eax
mov eax, dword [esi + 0x63c]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xd8], edi
test eax, eax
je 0x47bda0
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
jmp 0x47b650
jg 0x47b647
cmp dword [eax + 0x10], ecx
jb 0x47b655
mov edi, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x47b683
cmp dword [eax + 0x14], edx
jge 0x47b640
mov eax, dword [eax + 0xc]
jmp 0x47b64c
ja 0x47b66b
cmp edx, dword [ebx + 0x38]
jbe 0x47b2cc
add dword [ecx + 0x668], 1
adc dword [ecx + 0x66c], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
cmp dword [ebp - 0xd8], edi
mov eax, edi
mov dword [ebp - 0xd0], edi
je 0x47b6a7
cmp edx, dword [edi + 0x14]
jg 0x47b7c0
jl 0x47b6a7
cmp ecx, dword [edi + 0x10]
jae 0x47b7c0
mov dword [esp], 0x50
call sym.operator_new_unsigned_int_
mov edi, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov ecx, 0xe
mov dword [ebp - 0x104], eax
mov dword [eax + 0x10], edi
mov dword [ebp - 0x108], edi
lea edi, [eax + 0x18]
mov dword [eax + 0x14], edx
xor eax, eax
mov dword [ebp - 0xe0], edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xd0]
cmp dword [ebp - 0xd8], edi
je 0x47bbf0
mov eax, dword [edi + 0x14]
cmp dword [ebp - 0xe0], eax
mov edx, dword [edi + 0x10]
jle 0x47b780
mov eax, dword [ebp - 0xd0]
cmp dword [esi + 0x644], eax
je 0x47be2f
mov dword [esp], eax
call method.std._Rb_tree_increment_std::_Rb_tree_node_base_
mov edx, eax
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edx + 0x14]
jle 0x47becb
mov eax, dword [esi + 0x63c]
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x47c008
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0xe0]
jmp 0x47b76d
jl 0x47b755
cmp dword [ebp - 0x108], edi
jae 0x47b777
mov edx, dword [eax + 8]
mov eax, 1
test edx, edx
je 0x47bfa9
mov dword [ebp - 0xd0], edx
mov eax, edx
mov ecx, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
cmp ebx, ecx
jle 0x47b74b
mov edx, dword [eax + 0xc]
xor eax, eax
jmp 0x47b75d
jl 0x47bcd0
cmp dword [ebp - 0x108], edx
jb 0x47bcd0
cmp dword [ebp - 0xe0], eax
jg 0x47b701
cmp dword [ebp - 0x108], edx
ja 0x47b701
mov eax, dword [ebp - 0x104]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0xd0]
nop
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xfc]
mov dword [eax + 0x44], 0
mov dword [ebp - 0xd0], 1
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], ecx
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov dword [eax + 0x38], edx
mov dword [eax + 0x3c], ecx
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], ecx
cmp byte [esi + 0xd], 0
je 0x47bb81
mov eax, dword [esi]
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47bd61
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
movzx eax, byte [eax + 0x70]
lea edi, [ebp - 0xc8]
mov dword [esp], str._json_rpc
mov ecx, edi
mov dword [ebp - 0xd8], eax
call method.xmrig::String.String_char_const_
mov eax, dword [esi]
sub esp, 4
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47bd90
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
movzx eax, word [eax + 0x88]
mov dword [ebp - 0xe8], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x2c]
cmp eax, method.xmrig::SelfSelectClient.pool___const
jne 0x47bd80
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edx, dword [ebp - 0xd0]
add eax, 0x78
lea ecx, [ebp - 0x78]
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], 3
mov dword [esp + 0x18], edx
mov edx, dword [ebp - 0xd8]
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0xdc]
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0xe8]
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 0x47b90c
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [esi + 0x64c]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x650]
test eax, eax
mov dword [ebp - 0xc4], eax
je 0x47b92d
lock add dword [eax + 8], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
cmp eax, method.xmrig::SelfSelectClient.tag___const
jne 0x47bd70
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov dword [esp + 8], edi
lea edi, [ebp - 0x78]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
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 0x47b990
lock sub dword [ecx + 8], 1
jne 0x47b990
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esi + 0x670]
mov edx, dword [esi + 0x674]
add eax, 1
adc edx, 0
mov dword [esi + 0x670], eax
mov dword [ebp - 0xd0], eax
mov dword [esi + 0x674], edx
mov ecx, dword [ebx + 0x34]
mov dword [ebp - 0xcc], edx
mov edx, dword [ebx + 0x30]
mov dword [ebp - 0xd4], ecx
mov ecx, dword [ebx + 0x38]
mov ebx, dword [ebx + 0x3c]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [esi + 0x660]
mov dword [ebp - 0xec], ebx
mov ebx, dword [esi + 0x664]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], ebx
mov ebx, dword [esi + 0x668]
mov esi, dword [esi + 0x66c]
call method.xmrig::Tags.origin__
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
mov dword [esp + 0x18], esi
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
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 + 0x24], edx
mov dword [esp + 0x28], ecx
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov dword [esp], 6
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
call method.xmrig::Log.print_xmrig::Log::Level__char_const__..._
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x47ba86
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x47ba95
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x47baa4
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x50]
cmp eax, edx
je 0x47bab6
mov dword [esp], eax
call sym.operator_delete_void_
mov ebx, dword [ebp - 0x68]
test ebx, ebx
je 0x47bb11
mov eax, dword [ebx + 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 [ebx + 0x28]
lea edx, [ebx + 0x30]
sub esp, 4
mov esi, dword [ebx + 8]
cmp eax, edx
je 0x47bae3
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebx + 0x10]
lea edx, [ebx + 0x18]
cmp eax, edx
je 0x47bb05
mov dword [esp], eax
call sym.operator_delete_void_
mov dword [esp], ebx
call sym.operator_delete_void_
test esi, esi
je 0x47bb11
mov ebx, esi
jmp 0x47babd
mov dword [esp], ebx
call sym.operator_delete_void_
test esi, esi
jne 0x47bb01
mov ebx, dword [ebp - 0x9c]
test ebx, ebx
je 0x47bb60
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov eax, dword [ebx + 8]
test eax, eax
je 0x47bb58
mov edx, dword [eax + 8]
cmp edx, 1
jbe 0x47bbbd
sub edx, 1
mov dword [eax + 8], edx
mov dword [esp], ebx
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 0x47b2b9
mov ecx, dword [esi + 0x18]
mov edi, 1
mov eax, ecx
cdq
cmp dword [esi + 0x24], edx
jg 0x47bba0
jl 0x47bc70
cmp dword [esi + 0x20], ecx
jb 0x47bc70
mov dword [ebp - 0xd0], edi
jmp 0x47b83f
mov dword [eax], ecx
mov dword [esp], edx
call sym._free
mov eax, dword [ebx + 8]
mov edx, dword [eax]
mov ecx, dword [edx + 8]
test ecx, ecx
jne 0x47bbb0
cmp byte [eax + 0xc], 0
mov dword [edx + 4], 0
mov esi, dword [eax + 4]
je 0x47bbde
mov dword [esp], eax
call sym._free
mov dword [esp], esi
call sym.operator_delete_void_
jmp 0x47bb58
mov eax, dword [esi + 0x648]
test eax, eax
je 0x47bc1c
mov eax, edx
mov edx, dword [esi + 0x644]
cmp eax, dword [edx + 0x14]
jg 0x47bdb0
jl 0x47bc1c
mov eax, dword [ebp - 0x108]
cmp eax, dword [edx + 0x10]
ja 0x47bdb0
mov edi, dword [esi + 0x63c]
test edi, edi
je 0x47be95
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0xe0]
jmp 0x47bc51
jl 0x47bc3f
cmp dword [ebp - 0x108], eax
jae 0x47bc61
mov edx, dword [edi + 8]
mov eax, 1
test edx, edx
je 0x47bdff
mov edi, edx
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
cmp ebx, ecx
mov dword [ebp - 0xd0], eax
jle 0x47bc35
mov edx, dword [edi + 0xc]
xor eax, eax
jmp 0x47bc47
xor edi, edi
jmp 0x47bba0
mov ecx, eax
lea eax, [eax + 1]
shr eax, 1
add eax, ecx
cmp ecx, eax
mov dword [ebp - 0xe8], eax
jae 0x47b55b
shl ecx, 4
shl eax, 4
cmp dword [ebp - 0xd0], 0
mov dword [ebp - 0xd8], ecx
je 0x47c1c0
test eax, eax
jne 0x47c1a7
mov dword [ebp - 0xd0], 0
jmp 0x47b543
mov edi, dword [esi + 0x640]
mov eax, dword [ebp - 0xd0]
cmp edi, eax
je 0x47bec4
mov dword [esp], eax
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov edx, eax
mov eax, dword [ebp - 0xe0]
cmp eax, dword [edx + 0x14]
jge 0x47be6e
mov eax, dword [esi + 0x63c]
test eax, eax
mov dword [ebp - 0xd0], eax
je 0x47c054
mov dword [ebp + 8], ebx
mov dword [ebp - 0x10c], edi
mov ebx, dword [ebp - 0xe0]
jmp 0x47bd4a
jl 0x47bd2c
cmp dword [ebp - 0x108], edi
jae 0x47bd54
mov edx, dword [ebp - 0xd0]
mov ecx, 1
mov edx, dword [edx + 8]
test edx, edx
je 0x47bef8
mov dword [ebp - 0xd0], edx
mov eax, edx
mov edi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
cmp ebx, eax
jle 0x47bd22
mov edx, dword [ebp - 0xd0]
xor ecx, ecx
mov edx, dword [edx + 0xc]
jmp 0x47bd3a
mov ecx, esi
call eax
jmp 0x47b857
mov ecx, esi
call eax
jmp 0x47b945
mov ecx, esi
call eax
jmp 0x47b8b5
mov ecx, esi
call eax
jmp 0x47b890
mov dword [ebp - 0xd0], edi
jmp 0x47b6a7
mov edx, edi
lea esi, [esi]
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0xd0]
test eax, eax
jne 0x47bdcc
cmp dword [ebp - 0xd8], edx
jne 0x47be31
mov eax, 1
mov edi, dword [ebp - 0xd8]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov edi, dword [ebp - 0x104]
mov dword [esp + 4], edi
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 [esi + 0x648], 1
mov eax, edi
jmp 0x47b7c0
test al, al
mov ebx, dword [ebp + 8]
mov edx, edi
jne 0x47be9b
cmp dword [ebp - 0xe0], ecx
jg 0x47be57
jl 0x47be24
mov ecx, dword [ebp - 0xd0]
cmp dword [ebp - 0x108], ecx
ja 0x47be57
mov dword [ebp - 0xd0], edi
jmp 0x47b7aa
mov edx, eax
mov edi, dword [ebp - 0xe0]
cmp edi, dword [edx + 0x14]
mov eax, 1
jl 0x47bdd1
jg 0x47be4e
mov edi, dword [ebp - 0x108]
cmp edi, dword [edx + 0x10]
jb 0x47bdd1
xor eax, eax
jmp 0x47bdd1
mov edx, edi
test edx, edx
mov dword [ebp - 0xd0], 0
jne 0x47bdba
jmp 0x47b7aa
jg 0x47be7f
mov eax, dword [ebp - 0x108]
cmp eax, dword [edx + 0x10]
jbe 0x47bcfd
mov edi, dword [edx + 0xc]
test edi, edi
je 0x47bdb0
mov edx, dword [ebp - 0xd0]
jmp 0x47bdba
mov edi, dword [ebp - 0xd0]
cmp dword [esi + 0x640], edi
je 0x47bdab
mov dword [esp], edi
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xd0], edx
mov edx, edi
mov edi, eax
jmp 0x47be0c
mov edx, eax
jmp 0x47bdba
jl 0x47bedc
mov eax, dword [ebp - 0x108]
cmp eax, dword [edx + 0x10]
jae 0x47b72c
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x47be2f
mov dword [ebp - 0xd0], edx
jmp 0x47bdba
test cl, cl
mov dword [ebp - 0x110], edi
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x10c]
jne 0x47bfd9
cmp eax, dword [ebp - 0xe0]
jg 0x47b7aa
jl 0x47be57
mov edi, dword [ebp - 0x108]
cmp dword [ebp - 0x110], edi
jae 0x47b7aa
jmp 0x47be57
mov ecx, dword [ebp - 0xf0]
sub ecx, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xdc]
cmp ecx, dword [ebp - 0xf8]
ja 0x47b4da
mov dword [eax + 4], ecx
jmp 0x47b543
mov eax, 0x100
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xd0]
cmp ecx, dword [eax]
ja 0x47c0c1
mov edi, dword [ebp - 0xd0]
lea edi, [eax + edi + 0x10]
mov dword [ebp - 0xd0], edi
mov dword [eax + 4], ecx
jmp 0x47b543
test al, al
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp + 8]
jne 0x47c00e
cmp dword [ebp - 0xe0], ecx
jl 0x47b7aa
jg 0x47be57
cmp dword [ebp - 0x108], edi
jbe 0x47b7aa
jmp 0x47be57
mov eax, edx
cmp edi, eax
je 0x47be55
mov dword [esp], eax
mov edi, eax
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov ecx, eax
mov eax, dword [eax + 0x10]
mov edx, edi
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x110], eax
mov eax, dword [ecx + 0x14]
jmp 0x47bf15
mov edx, dword [ebp - 0xd8]
cmp dword [esi + 0x640], edx
je 0x47be57
mov dword [esp], edx
mov dword [ebp - 0x10c], edx
call method.std._Rb_tree_decrement_std::_Rb_tree_node_base_
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xd0], eax
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
jmp 0x47bfb6
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xd0], 0
jmp 0x47b543
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], eax
jmp 0x47bfdb
cmp dword [edi], ecx
mov eax, ecx
cmovae eax, dword [edi]
cmp dword [edi + 4], 0
mov dword [ebp - 0xf0], eax
je 0x47c12b
mov eax, dword [ebp - 0xf0]
add eax, 0x10
je 0x47c03f
mov dword [esp], eax
call sym._malloc
test eax, eax
je 0x47c03f
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 - 0x100]
jmp 0x47b4fc
mov eax, dword [ebp - 0xd8]
cmp dword [edi], eax
cmovae eax, dword [edi]
cmp dword [edi + 4], 0
mov dword [ebp - 0xd0], eax
je 0x47c151
mov eax, dword [ebp - 0xd0]
add eax, 0x10
je 0x47c03f
mov dword [esp], eax
call sym._malloc
test eax, eax
je 0x47c03f
mov edx, dword [ebp - 0xd0]
mov dword [eax + 4], 0
mov dword [ebp - 0xd0], 0
mov dword [eax], edx
mov edx, dword [edi + 8]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov dword [edx], eax
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc0]
jmp 0x47bf91
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 0x47c07c
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 0x47c0d8
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
cmp ecx, eax
jae 0x47b543
jmp 0x47b4a2
test eax, eax
jne 0x47bf69
jmp 0x47b543