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

Disassembly:
sub esp, 0x880
mov eax, dword [0x545628]
xor eax, esp
mov dword [esp + 0x87c], eax
mov eax, dword [esp + 0x88c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x890]
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov ebp, dword [eax + 4]
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
push edi
mov edi, dword [esp + 0x898]
push 0x2c
lea eax, [esp + 0x60]
mov dword [esp + 0x50], edx
mov edx, dword [edi]
mov edx, dword [edx + 4]
xor ebx, ebx
push eax
mov dword [esp + 0x18], ecx
push ecx
mov ecx, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], 0x554401d3
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], 8
call edx
test al, al
jne 0x47bcad
mov eax, dword [esp + 0x10]
push 0x532088
push eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x5c]
cmp eax, 0x55440101
je 0x47bcd6
cmp eax, 0x554401d3
je 0x47bcd6
mov ecx, dword [esp + 0x10]
push 0x532088
push ecx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x1c], ebx
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0xc], ecx
mov edx, dword [esi]
mov eax, dword [edx]
mov dword [eax + 0x10], ebx
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
lea eax, [eax + eax*2]
lea ecx, [edx + 0x20]
mov dword [esp + 0x20], ecx
add eax, eax
add eax, eax
add ecx, eax
mov dword [esp + 0x54], ecx
lea ecx, [edx + eax + 0x20]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + ecx*2]
add ecx, ecx
add ecx, ecx
add edx, ecx
lea edx, [edx + eax + 0x20]
add eax, 0x20
add ecx, eax
mov ebx, esi
mov dword [ebp + 8], ecx
add ecx, ebx
mov ebx, dword [esp + 0x10]
add esi, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x3c], edx
lea edx, [esp + 0x8c]
mov dword [ebp + 0xc], ecx
push edx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x44], esi
mov dword [ebp], 0x20
mov dword [ebp + 4], eax
call fcn.0047b760
add esp, 4
test al, al
jne 0x47bd89
mov ecx, ebx
call fcn.0040fa50
push 0x53209c
jmp 0x47c298
test byte [0x552670], 1
jne 0x47bda5
mov eax, dword [esp + 0x84]
or dword [0x552670], 1
mov dword [0x55266c], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx]
cmp eax, dword [ecx + 4]
jg 0x47c28c
test eax, eax
jl 0x47c28c
cmp dword [0x55266c], 0x400
ja 0x47c28c
cmp dword [esp + 0x70], 0
mov dword [esp + 0x18], 0
jle 0x47c0a8
mov edx, dword [esp + 0x20]
add edx, 8
mov dword [esp + 0x28], edx
nop
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x54]
ja 0x47c0da
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, ebx
sub ecx, dword [esp + 0x58]
mov eax, 0x2aaaaaab
mov dword [edx - 8], ecx
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x50]
push 4
imul ecx
mov eax, dword [esp + 0x2c]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [eax - 4], ecx
mov edx, dword [edi]
mov edx, dword [edx + 4]
push eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, edi
call edx
test al, al
je 0x47c0f1
cmp ebx, dword [esp + 0x40]
jae 0x47c108
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 4]
push 2
push ebx
push ecx
mov ecx, edi
mov dword [esp + 0x44], ebx
call edx
test al, al
je 0x47c11f
movzx eax, word [ebx]
movsx ecx, ax
mov edx, ecx
and edx, 0x80000001
jns 0x47be83
dec edx
or edx, 0xfffffffe
inc edx
jne 0x47c136
test ax, ax
jle 0x47c14d
mov edx, 0x80
cmp ax, dx
ja 0x47c164
mov edx, dword [edi]
mov edx, dword [edx + 4]
push ecx
lea eax, [ebx + 2]
push eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, edi
call edx
test al, al
je 0x47c17b
movsx eax, word [ebx]
mov edx, dword [esp + 0x38]
lea ecx, [ebx + eax + 2]
mov dword [esp + 0x3c], ecx
movsx ecx, word [edx]
shr ecx, 1
mov eax, 0
je 0x47bef4
lea ebx, [ebx]
mov edx, dword [esp + 0x2c]
cmp word [edx + eax*2], 0
jl 0x47c192
inc eax
cmp eax, ecx
jb 0x47bee0
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
mov dword [esp + 0x1c], 0
jbe 0x47c080
lea esp, [esp]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
mov ecx, esi
sub ecx, dword [esp + 0x40]
push 2
mov dword [edx], ecx
mov eax, dword [edi]
mov edx, dword [eax + 4]
push esi
push ebx
mov ecx, edi
mov dword [esp + 0x50], esi
call edx
test al, al
je 0x47c1a9
movzx eax, word [esi]
movsx ecx, ax
mov edx, ecx
and edx, 0x80000001
jns 0x47bf4e
dec edx
or edx, 0xfffffffe
inc edx
jne 0x47c1cf
test ax, ax
jle 0x47c1f5
mov edx, 0x80
cmp ax, dx
ja 0x47c21b
mov eax, dword [edi]
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [esp + 0x14]
lea ebx, [esi + 2]
push ebx
push ecx
mov ecx, edi
mov dword [esp + 0x54], ebx
call edx
test al, al
je 0x47c23e
movsx eax, word [esi]
xor ecx, ecx
mov word [eax + esi + 2], cx
mov eax, ebx
mov byte [esp + 0x17], cl
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x47bfa0
movsx ecx, word [esi]
sub eax, edx
sar eax, 1
lea edx, [eax + eax]
cmp edx, ecx
je 0x47bfbe
mov byte [esp + 0x17], 1
mov ebx, dword [esp + 0x24]
lea eax, [esi + ecx + 4]
mov ecx, dword [esp + 0x44]
movsx edx, word [ecx]
mov ecx, dword [0x55266c]
mov esi, dword [esp + 0x10]
add edx, 4
add dword [ebp + 0x1c], edx
push ecx
mov dword [esp + 0x30], eax
mov eax, dword [edi]
mov edx, dword [eax + 4]
add ebx, 4
push ebx
push esi
mov ecx, edi
call edx
test al, al
je 0x47c265
cmp byte [esp + 0x17], 0
je 0x47c004
xor eax, eax
mov word [ebx], ax
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
inc dword [eax + 0x18]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov si, word [eax + 6]
push edx
mov edx, dword [esp + 0x4c]
call fcn.0047cb70
add esp, 4
mov edx, 1
test al, al
je 0x47c038
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
add dword [eax + 0x1c], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
cmp eax, dword [esp + 0x7c]
jb 0x47c048
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
movzx esi, word [ebx]
mov eax, dword [eax]
add dword [eax + 0x10], esi
cmp word [ebx], 0
je 0x47c05f
add dword [ebp + 0x18], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
add ecx, 0xc
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx]
jb 0x47bf10
inc dword [ebp + 0x10]
mov edx, dword [esp + 0x38]
movsx eax, word [edx]
add dword [esp + 0x28], 0xc
add eax, 2
add dword [ebp + 0x14], eax
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
jl 0x47bdf0
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
push edx
push eax
mov eax, dword [esp + 0x3c]
mov ecx, esi
call fcn.0047c4d0
test al, al
jne 0x47c288
push 0x532400
mov ecx, esi
call fcn.00401490
jmp 0x47c2a7
mov ecx, dword [esp + 0x10]
push str.usrDict_Data_Error_:_pyBlock___pyBlockEnd
push ecx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov edx, dword [esp + 0x10]
push str.read_UsrDict_Data_Error
push edx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x10]
push str.usrDict_Data_Error:_pyStr___pyStrEnd
push eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov ecx, dword [esp + 0x10]
push str.read_UsrDict_Data_Error
push ecx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov edx, dword [esp + 0x10]
push str.UsrDict_Data_Error:_CbPyStr____2___0
push edx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x10]
push str.UsrDict_Data_Error:_CbPyStr___0
push eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov ecx, dword [esp + 0x10]
push str.UsrDict_Data_Error:_CbPyStr___64__sizeof_TCHAR_
push ecx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov edx, dword [esp + 0x10]
push str.UsrDict_Data_Error
push edx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x10]
push str.usrdict_Data_error:_pPyId_curPyId____0
push eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push str.UsrDict_Data_Error
push ebx
mov dword [edx + ecx*4 + 8], eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push str.UsrDict_Data_Error:_CbWord____2___0
push ebx
mov dword [edx + ecx*4 + 8], eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push str.UsrDict_Data_Error:_CbWord___0
push ebx
mov dword [edx + ecx*4 + 8], eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push str.Usrdict_Data_Error:_CbWord___64__sizeof_TCHAR_
push ebx
mov dword [edx + ecx*4 + 8], eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
mov dword [edx + ecx*4 + 8], eax
mov ecx, dword [esp + 0x10]
push str.UsrDict_Data_Error
push ecx
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push str.UsrDict_Data_Error
push esi
mov dword [ecx + edx*4 + 8], eax
call fcn.0040fb00
add esp, 8
jmp 0x47c2a9
mov al, 1
jmp 0x47c2a9
mov ecx, ebx
call fcn.0040fa50
push str._u7b
push 0x52a3bc
mov edx, eax
call fcn.004114a0
add esp, 8
xor al, al
mov ecx, dword [esp + 0x88c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004d158d
add esp, 0x880
ret 0xc