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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
or dword [ebp - 0x14], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x50]
push edi
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x14]
xor edi, edi
cmp eax, edi
mov ebx, ecx
je 0x5b38f7
cmp dword [eax + 0x14], edi
je 0x5b38f7
mov ecx, dword [eax + 0x2c]
sub ecx, dword [eax + 0x50]
add dword [ebp - 8], ecx
mov eax, dword [esi + 0x2c]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00549e70
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x40]
imul eax, eax, 7
pop ecx
push eax
mov eax, dword [ebx + 4]
push dword [eax + 0x28]
lea ecx, [ebp - 0x54]
call fcn.005b45b0
lea eax, [ebp + 0x13]
push eax
lea eax, [ebp + 0xf]
push eax
push esi
mov ecx, ebx
call fcn.005b2eed
cmp dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
jle 0x5b3f91
lea ecx, [ebp - 0x40]
call fcn.005a9cf2
push dword [ebp + 0x14]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.005b32c1
mov eax, dword [ebp - 0x3c]
push edi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x28], eax
call fcn.005a9cff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
inc dword [ebp - 4]
mov dword [ebp - 0xc], eax
and eax, 0xf
je 0x5b39b3
cmp eax, 1
je 0x5b3ccf
jle 0x5b3f4d
cmp eax, 3
jle 0x5b3b4e
cmp eax, 4
je 0x5b3a4b
cmp eax, 5
je 0x5b39e0
cmp eax, 6
jne 0x5b3f4d
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp byte [ebp + 0xf], 0
pop ecx
mov dword [ebp - 0x10], eax
jne 0x5b39c9
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], edi
jne 0x5b3ebf
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
jmp 0x5b3ec2
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp byte [ebp + 0xf], 0
pop ecx
mov dword [ebp - 0x10], eax
jne 0x5b39f6
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], edi
jne 0x5b3a06
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
jmp 0x5b3a09
dec dword [ebp - 0x10]
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp dword [ebp - 0x14], 0xffffffff
pop ecx
mov ecx, dword [ebx + 0x78]
mov eax, dword [ecx + eax*4]
je 0x5b3a28
mov ecx, dword [ebp - 0x14]
or dword [ebp - 0x14], 0xffffffff
jmp 0x5b3a2f
mov ecx, dword [ebp - 8]
add dword [ebp - 8], 4
lea edx, [ebp - 0x54]
push edx
push edi
push ecx
push dword [eax + 4]
mov ecx, esi
push dword [ebp + 0x14]
push dword [ebp - 0x10]
push edi
call fcn.005b2577
jmp 0x5b3c22
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp byte [ebp + 0xf], 0
pop ecx
mov dword [ebp - 0x10], eax
jne 0x5b3a61
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], edi
jne 0x5b3a71
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
jmp 0x5b3a74
dec dword [ebp - 0x10]
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp eax, dword [ebx + 0xe4]
pop ecx
mov dword [ebp - 0x20], eax
jb 0x5b3acf
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x54]
cmp eax, edi
jne 0x5b3aa0
mov ecx, dword [ebp + 0x14]
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
push edi
push edi
push edi
push edi
push dword [ebx + 0xe4]
mov dword [ebp - 0x2c], eax
call fcn.005974ed
mov ecx, dword [ebx + 4]
push eax
push dword [ebp - 0x20]
call fcn.005974ed
mov ecx, dword [ebp - 0x2c]
push eax
push 0x424
call fcn.00596b74
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + ecx*4]
cmp eax, edi
mov dword [ebp - 0x28], eax
jne 0x5b3b1a
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x54]
cmp eax, edi
jne 0x5b3af9
mov ecx, dword [ebp + 0x14]
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
push edi
push edi
push edi
push edi
push edi
push dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
call fcn.005974ed
mov ecx, dword [ebp - 0x2c]
push eax
push 0x423
call fcn.00596b74
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
je 0x5b3b28
or dword [ebp - 0x14], 0xffffffff
jmp 0x5b3b2f
mov eax, dword [ebp - 8]
add dword [ebp - 8], 4
lea ecx, [ebp - 0x54]
push ecx
push edi
push eax
mov eax, dword [ebp - 0x28]
push dword [eax + 4]
mov ecx, esi
push dword [ebp + 0x14]
push dword [ebp - 0x10]
push edi
call fcn.005b2577
jmp 0x5b3f4d
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp byte [ebp + 0x13], 0
pop ecx
mov dword [ebp - 0x10], eax
jne 0x5b3b64
mov dword [ebp - 0x10], edi
lea eax, [ebp - 4]
push eax
call fcn.00549e70
pop ecx
push dword [ebp + 0x14]
mov ecx, dword [ebx + 0x78]
push dword [ebp - 0xc]
mov eax, dword [ecx + eax*4]
push dword [ebp - 0x28]
mov ecx, esi
push dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
call fcn.005b34d4
push dword [ebp - 0x2c]
mov ecx, esi
push dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
call fcn.005b1730
cmp dword [ebp - 0x10], edi
jbe 0x5b3c37
dec dword [ebp - 0x10]
cmp dword [ebp - 0x24], edi
jne 0x5b3c15
push dword [ebp - 0x10]
mov ecx, esi
call fcn.00553580
test eax, eax
je 0x5b3c15
push dword [ebp - 0x10]
mov ecx, esi
call fcn.00553580
cmp eax, dword [ebp - 0x20]
je 0x5b3c15
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x54]
cmp eax, edi
jne 0x5b3bdf
mov ecx, dword [ebp + 0x14]
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
push edi
push edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x10]
push edi
push edi
inc eax
push eax
call fcn.005974ed
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.00553580
mov ecx, dword [ebx + 4]
push eax
call fcn.00597571
mov ecx, dword [ebp - 0x2c]
push eax
push 0x431
call fcn.00596b74
push dword [ebp - 0x20]
mov ecx, esi
push dword [ebp - 0x10]
call fcn.005b44b3
test byte [ebp - 0xc], 0x40
je 0x5b3f77
mov eax, dword [esi + 0x40]
add eax, dword [ebp - 0x10]
jmp 0x5b3e0e
cmp dword [ebp - 0x24], edi
mov ecx, esi
je 0x5b3c4c
mov edi, dword [ebp - 0x24]
push dword [ebp - 0x20]
shr edi, 3
jmp 0x5b3df9
push dword [ebp - 0x18]
call fcn.00553580
test eax, eax
je 0x5b3ca3
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x54]
cmp eax, edi
jne 0x5b3c6f
mov ecx, dword [ebp + 0x14]
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
push edi
push edi
push edi
push edi
push dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
call fcn.005974ed
push eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.00553580
mov ecx, dword [ebx + 4]
push eax
call fcn.00597571
mov ecx, dword [ebp - 0x2c]
push eax
push 0x431
call fcn.00596b74
push dword [ebp - 0x20]
mov ecx, esi
push dword [ebp - 0x18]
call fcn.005b44b3
test byte [ebp - 0xc], 0x40
je 0x5b3cc7
mov eax, dword [esi + 0x40]
push dword [ebp - 4]
add eax, dword [ebp - 0x18]
mov ecx, esi
push eax
call fcn.005b1f9a
inc dword [ebp - 0x18]
jmp 0x5b3f4d
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp byte [ebp + 0x13], 0
pop ecx
mov edi, eax
jne 0x5b3ce3
xor edi, edi
lea eax, [ebp - 4]
push eax
call fcn.00549e70
pop ecx
push dword [ebp + 0x14]
mov ecx, dword [ebx + 0x78]
push dword [ebp - 0xc]
mov eax, dword [ecx + eax*4]
push dword [ebp - 0x28]
mov ecx, esi
push dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
call fcn.005b34d4
test edi, edi
je 0x5b3deb
dec edi
test eax, eax
jne 0x5b3df4
push edi
mov ecx, esi
call fcn.00553580
test eax, eax
je 0x5b3df4
push edi
mov ecx, esi
call fcn.00553580
cmp eax, dword [ebp - 0x10]
je 0x5b3df4
cmp byte [ebx + 0x108], 0
je 0x5b3d9d
push str._n__
push dword [ebp - 0x10]
mov ecx, esi
push str._new_method
push edi
call fcn.00553580
mov ecx, dword [ebx + 4]
push eax
push str._existing_method
lea eax, [edi + 1]
push eax
push str.duplicate_disp_id
add ecx, 0x18
call fcn.005a790d
mov ecx, eax
call fcn.005a7aa1
mov ecx, eax
call fcn.005a790d
mov ecx, eax
call fcn.005a7c9b
mov ecx, eax
call fcn.005a790d
mov ecx, eax
call fcn.005a7c9b
mov ecx, eax
call fcn.005a790d
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x54]
test eax, eax
jne 0x5b3db4
mov ecx, dword [ebp + 0x14]
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x2c], eax
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [edi + 1]
push eax
call fcn.005974ed
push eax
push edi
mov ecx, esi
call fcn.00553580
mov ecx, dword [ebx + 4]
push eax
call fcn.00597571
mov ecx, dword [ebp - 0x2c]
push eax
push 0x431
call fcn.00596b74
jmp 0x5b3df4
test eax, eax
je 0x5b3e17
mov edi, eax
shr edi, 3
push dword [ebp - 0x10]
mov ecx, esi
push edi
call fcn.005b44b3
test byte [ebp - 0xc], 0x40
je 0x5b3f77
mov eax, dword [esi + 0x40]
add eax, edi
push dword [ebp - 4]
push eax
jmp 0x5b3f46
mov edi, dword [ebp - 0x18]
cmp edi, dword [esi + 0x3c]
jb 0x5b3e43
mov ecx, dword [ebx + 4]
push str._n__
push esi
push str.count_is_off_on_traits
add ecx, 0x18
call fcn.005a790d
mov ecx, eax
call fcn.005a7c6e
mov ecx, eax
call fcn.005a790d
push edi
mov ecx, esi
call fcn.00553580
test eax, eax
je 0x5b3e95
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x48]
mov eax, dword [eax + 0x54]
test eax, eax
jne 0x5b3e63
push 0x15
call fcn.00595879
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x2c], eax
xor eax, eax
push eax
push eax
push eax
push eax
push edi
call fcn.005974ed
push eax
push edi
mov ecx, esi
call fcn.00553580
mov ecx, dword [ebx + 4]
push eax
call fcn.00597571
mov ecx, dword [ebp - 0x2c]
push eax
push 0x431
call fcn.00596b74
push dword [ebp - 0x10]
mov ecx, esi
push edi
call fcn.005b44b3
test byte [ebp - 0xc], 0x40
je 0x5b3eb6
mov eax, dword [esi + 0x40]
push dword [ebp - 4]
add eax, edi
push eax
mov ecx, esi
call fcn.005b1f9a
inc edi
mov dword [ebp - 0x18], edi
jmp 0x5b3f4d
dec dword [ebp - 0x10]
push edi
push dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.005b337c
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 4]
push eax
call fcn.00549e70
cmp eax, edi
pop ecx
je 0x5b3eeb
mov ecx, dword [ebp - 4]
movzx edi, byte [ecx]
inc dword [ebp - 4]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ecx + 0x74]
jne 0x5b3f0e
mov edx, dword [ebp - 8]
test dl, 7
je 0x5b3f04
mov dword [ebp - 0x14], edx
add edx, 4
mov ecx, edx
add edx, 8
mov dword [ebp - 8], edx
jmp 0x5b3f23
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xffffffff
je 0x5b3f1c
or dword [ebp - 0x14], 0xffffffff
jmp 0x5b3f23
mov ecx, dword [ebp - 8]
add dword [ebp - 8], 4
lea edx, [ebp - 0x54]
push edx
push edi
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
push dword [ebp + 0x14]
push dword [ebp - 0x10]
push eax
call fcn.005b2577
test byte [ebp - 0xc], 0x40
je 0x5b3f77
push dword [ebp - 4]
push dword [ebp - 0x10]
mov ecx, esi
call fcn.005b1f9a
test byte [ebp - 0xc], 0x40
je 0x5b3f77
lea eax, [ebp - 4]
push eax
call fcn.00549e70
xor edi, edi
cmp eax, edi
pop ecx
jle 0x5b3f79
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 4]
push eax
call fcn.00549e70
dec dword [ebp - 0x2c]
pop ecx
jne 0x5b3f66
jmp 0x5b3f79
xor edi, edi
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
jl 0x5b3947
mov eax, dword [esi + 0x30]
cmp eax, edi
je 0x5b3fa3
mov ecx, dword [esi + 0x40]
lea eax, [eax + ecx*4]
mov dword [ebp + 0x10], eax
jmp 0x5b3fa6
mov dword [ebp + 0x10], edi
mov ecx, dword [esi + 0x40]
xor eax, eax
cmp ecx, edi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x34], ecx
jbe 0x5b4040
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + eax*4], edi
jne 0x5b4030
cmp byte [ebx + 0x108], 0
je 0x5b4006
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push str._not_defined_by_compiler.__Using__n
push esi
push str._on
inc eax
push eax
push str.WARNING:_slot
add ecx, 0x18
call fcn.005a790d
mov ecx, eax
call fcn.005a7af0
mov ecx, eax
call fcn.005a790d
mov ecx, eax
call fcn.005a7c6e
mov ecx, eax
call fcn.005a790d
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
je 0x5b4014
or dword [ebp - 0x14], 0xffffffff
jmp 0x5b401b
mov eax, dword [ebp - 8]
add dword [ebp - 8], 4
lea ecx, [ebp - 0x54]
push ecx
push edi
push eax
push edi
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.005b2577
mov eax, dword [ebp + 0xc]
inc eax
cmp eax, dword [ebp - 0x34]
mov dword [ebp + 0xc], eax
jb 0x5b3fb9
mov eax, dword [ebp - 0x50]
cmp eax, edi
jbe 0x5b4238
add eax, 0x10
push eax
mov eax, dword [ebx + 4]
push dword [eax + 0x28]
lea ecx, [ebp - 0x44]
call fcn.005b45b0
lea eax, [esi + 0x28]
mov dword [ebp + 0xc], eax
mov eax, dword [eax]
cmp eax, edi
je 0x5b4129
mov dword [ebp + 0x10], eax
mov eax, dword [eax + 0x48]
cmp eax, edi
mov dword [ebp + 0xc], eax
jne 0x5b40a0
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x48]
mov eax, dword [eax + 0x54]
cmp eax, edi
jne 0x5b408e
push 0x15
call fcn.00595879
push edi
push edi
push edi
push edi
push edi
push edi
push 0x453
mov ecx, eax
call fcn.00596b74
lea eax, [ebp + 0xc]
push eax
call fcn.00549e70
cmp eax, 1
pop ecx
jg 0x5b40b2
push 2
pop eax
push eax
lea ecx, [ebp - 0x44]
call fcn.005d261d
lea eax, [ebp + 0xc]
push eax
call fcn.00549e70
pop ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.005d261d
lea eax, [ebp + 0xc]
push eax
call fcn.00549e70
pop ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.005d261d
lea eax, [ebp + 0xc]
push eax
call fcn.00549e70
pop ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.005d261d
lea eax, [ebp + 0xc]
push eax
call fcn.00549e70
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0x49
pop ecx
mov dword [ebp + 0x14], eax
jne 0x5b4118
push 0x49
push edi
lea ecx, [ebp - 0x54]
call fcn.005b4645
inc esi
dec dword [ebp + 0x14]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x54]
push esi
call fcn.005b4684
jmp 0x5b41ce
mov eax, dword [ebx + 4]
push edi
push dword [eax + 0x28]
push 0x64
call fcn.004426f0
add esp, 0xc
cmp eax, edi
je 0x5b4149
mov ecx, eax
call fcn.005b4b0c
mov edi, eax
jmp 0x5b414b
xor edi, edi
push esi
lea ecx, [edi + 4]
mov dword [ebp + 0x10], edi
call fcn.00479180
push ebx
lea ecx, [edi + 0xc]
call fcn.005ae4a4
and dword [edi + 0x10], 0
push 1
mov ecx, edi
mov dword [edi + 0x18], 4
call fcn.005c272f
push esi
push 0
mov ecx, edi
call fcn.005c28c0
mov eax, dword [ebx + 4]
push dword [eax + 0x90]
lea ecx, [edi + 0x2c]
call fcn.00479180
mov ecx, dword [ebp + 0xc]
push edi
call fcn.005ae4a4
or byte [edi + 0x1f], 0x20
push 2
lea ecx, [ebp - 0x44]
call fcn.005d261d
push 1
lea ecx, [ebp - 0x44]
call fcn.005d261d
push 1
lea ecx, [ebp - 0x44]
call fcn.005d261d
push 1
lea ecx, [ebp - 0x44]
call fcn.005d261d
push 0x47
lea ecx, [ebp - 0x54]
call fcn.005b2c1e
push dword [ebp - 0x50]
lea ecx, [ebp - 0x44]
call fcn.005d261d
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x44]
call fcn.005b457e
push 0
lea ecx, [ebp - 0x44]
call fcn.005d261d
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x28]
push 3
push 0
push dword [ebp - 0x40]
call fcn.005dafc0
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax + 0x48]
push ecx
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x28]
call fcn.00453290
lea ecx, [ebp - 0x44]
call fcn.005b4627
mov esi, dword [ebp + 8]
xor edi, edi
mov ecx, dword [esi + 0x14]
cmp ecx, edi
je 0x5b4254
cmp dword [ecx + 0x14], edi
je 0x5b4254
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
je 0x5b4254
sub eax, dword [ecx + 0x50]
add eax, dword [esi + 0x50]
jmp 0x5b4261
test byte [esi + 0x20], 1
je 0x5b4264
mov eax, dword [ebp - 8]
add dword [ebp - 8], 0x10
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x54]
mov dword [esi + 0x2c], eax
call fcn.005b4627
pop edi
pop esi
pop ebx
leave
ret 0x10