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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x573f2a
mov eax, dword fs:[0]
push eax
sub esp, 0xb64
mov eax, dword [0x5e2320]
xor eax, esp
mov dword [esp + 0xb5c], eax
push esi
push edi
mov eax, dword [0x5e2320]
xor eax, esp
push eax
lea eax, [esp + 0xb70]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x28], edi
mov esi, 0x10a
mov dword [esp + 0x14], 0
movzx eax, word [edi + 0x9e]
lea edx, [esi + 1]
cmp ax, si
je 0x4bccaa
cmp ax, dx
je 0x4bccaa
xor cl, cl
jmp 0x4bccac
mov cl, 1
movzx eax, word [edi + 0xa0]
mov byte [esp + 0x12], cl
cmp ax, si
je 0x4bccc5
cmp ax, dx
je 0x4bccc5
xor al, al
jmp 0x4bccc7
mov al, 1
mov byte [esp + 0x13], al
test cl, cl
jne 0x4bccfd
test al, al
jne 0x4bccfd
cmp dword [edi + 0x108], 0
lea esi, [edi - 0x798]
je 0x4bcd5a
mov eax, dword [esi + 0x798]
lea ecx, [esi + 0x798]
mov dword [esi + 0x8a0], 0
call dword [eax + 0x28]
jmp 0x4bcd5a
cmp dword [edi + 0x108], 1
lea esi, [edi - 0x798]
je 0x4bcd29
mov eax, dword [esi + 0x798]
lea ecx, [esi + 0x798]
mov dword [esi + 0x8a0], 1
call dword [eax + 0x28]
mov cl, byte [esp + 0x12]
test cl, cl
je 0x4bcd5a
cmp byte [esp + 0x13], 0
jne 0x4bcd5a
cmp word [edi + 0xa0], 0
je 0x4bcd5a
mov ax, word [edi + 0xa0]
movzx ecx, word [edi + 0x9e]
mov word [edi + 0x9e], ax
mov word [edi + 0xa0], cx
push dword [edi + 0x9e]
lea ecx, [esp + 0x78]
call fcn.004a73b0
add esp, 4
lea ecx, [esp + 0x74]
mov dword [esp + 0xb78], 0
call fcn.00517a50
test al, al
jne 0x4bcd95
mov ecx, dword [edi - 0x73c]
push 0x8541
push esi
call fcn.0051b660
lea ecx, [esp + 0x74]
call fcn.00517890
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x764]
push eax
call fcn.00560316
push str.filemapping_keyname_square.png_corner29_29_29_29
lea ecx, [esp + 0x758]
mov byte [esp + 0xb7c], 1
call fcn.005170e0
push str.mapping_keyname_circle.png
lea ecx, [esp + 0x7dc]
call fcn.005170e0
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x86c]
push eax
call fcn.00560316
push str.filemapping_keyname_square_light.png_corner29_29_29_29
lea ecx, [esp + 0x860]
mov byte [esp + 0xb7c], 2
call fcn.005170e0
push str.mapping_keyname_circle_light.png
lea ecx, [esp + 0x8e4]
call fcn.005170e0
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x65c]
push eax
call fcn.00560316
push str.filemapping_keyname_square_warning.png_corner29_29_29_29
lea ecx, [esp + 0x650]
mov byte [esp + 0xb7c], 3
call fcn.005170e0
push str.filemapping_keyname_circle_warning.png_corner29_29_29_29
lea ecx, [esp + 0x6d4]
call fcn.005170e0
xorps xmm0, xmm0
lea esi, [esp + 0x20c]
movq qword [esp + 0x18], xmm0
mov edi, 1
movq qword [esp + 0x20], xmm0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0x5e
mov dword [esp + 0x20], 0x3c
mov dword [esp + 0x24], 0x5e
mov ecx, esi
call fcn.00516ee0
add esi, 0x10
dec edi
jns 0x4bceb1
push str.22_0_22_0
lea ecx, [esp + 0x60]
call fcn.00516e40
push str.0_0_0_0
lea ecx, [esp + 0x60]
movdqu xmm0, xmmword [eax]
movdqu xmmword [esp + 0x210], xmm0
call fcn.00516e40
push fcn.00517040
push fcn.00516f80
push 2
movdqu xmm0, xmmword [eax]
push 0x84
lea eax, [esp + 0x554]
push eax
movdqu xmmword [esp + 0x230], xmm0
call fcn.00560316
push 0x100
lea eax, [esp + 0xa68]
mov byte [esp + 0xb7c], 4
push 0
push eax
call sub.MSVCR120.dll_memset
mov esi, dword [sym.imp.MSVCR120.dll_mbstowcs_s]
lea eax, [esp + 0xa70]
push 0x80
push str.mapping_single_key_normal_tip
push 0x80
push eax
push 0
call esi
lea eax, [esp + 0xa84]
push eax
call fcn.0051b100
mov edi, dword [esp + 0x4c]
add esp, 0x24
test eax, eax
jne 0x4bcf85
lea eax, [esp + 0xa64]
push eax
push eax
call fcn.0051a210
lea eax, [esp + 0xa6c]
push eax
call fcn.0051b100
add esp, 0xc
push eax
lea ecx, [esp + 0x548]
call fcn.005170e0
push 0x100
lea eax, [esp + 0xa68]
push 0
push eax
call sub.MSVCR120.dll_memset
push 0x80
push str.mapping_joystickdisc_tip
push 0x80
lea eax, [esp + 0xa7c]
push eax
push 0
call esi
lea eax, [esp + 0xa84]
push eax
call fcn.0051b100
add esp, 0x24
test eax, eax
jne 0x4bcff3
lea eax, [esp + 0xa64]
push eax
push eax
call fcn.0051a210
lea eax, [esp + 0xa6c]
push eax
call fcn.0051b100
add esp, 0xc
push eax
lea ecx, [esp + 0x5cc]
call fcn.005170e0
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x44c]
push eax
call fcn.00560316
mov byte [esp + 0xb78], 5
cmp dword [edi + 0x120], 1
jne 0x4bd05e
cvttsd2si eax, qword [edi + 0x240]
mov edx, str.mapping_repeat_tip
lea ecx, [esp + 0xa64]
push eax
call fcn.0041d7e0
add esp, 4
mov byte [esp + 0xb78], 6
mov ecx, 1
jmp 0x4bd0de
push 0x100
lea eax, [esp + 0x968]
push 0
push eax
call sub.MSVCR120.dll_memset
push 0x80
push str.mapping_joystick_key_focus_tip
push 0x80
lea eax, [esp + 0x97c]
push eax
push 0
call esi
lea eax, [esp + 0x984]
push eax
call fcn.0051b100
add esp, 0x24
test eax, eax
jne 0x4bd0bf
lea eax, [esp + 0x964]
push eax
push eax
call fcn.0051a210
lea eax, [esp + 0x96c]
push eax
call fcn.0051b100
add esp, 0xc
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x18c]
call fcn.00516f50
mov dword [esp + 0xb78], 7
mov ecx, 2
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x43c]
push eax
call fcn.005170c0
mov dword [esp + 0xb78], 6
mov eax, dword [esp + 0x14]
test al, 2
je 0x4bd119
and eax, 0xfffffffd
lea ecx, [esp + 0x184]
mov dword [esp + 0x14], eax
call fcn.00517040
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb78], 5
test al, 1
je 0x4bd134
lea ecx, [esp + 0xa64]
call fcn.00517040
push 0x100
lea eax, [esp + 0x968]
push 0
push eax
call sub.MSVCR120.dll_memset
push 0x80
push str.mapping_joystick_key_focus_tip
push 0x80
lea eax, [esp + 0x97c]
push eax
push 0
call esi
lea eax, [esp + 0x984]
push eax
call fcn.0051b100
add esp, 0x24
test eax, eax
jne 0x4bd195
lea eax, [esp + 0x964]
push eax
push eax
call fcn.0051a210
lea eax, [esp + 0x96c]
push eax
call fcn.0051b100
add esp, 0xc
push eax
lea ecx, [esp + 0x4c4]
call fcn.005170e0
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x344]
push eax
call fcn.00560316
mov byte [esp + 0xb78], 8
mov ecx, 0x588858
cmp dword [edi + 0x120], 1
mov eax, str.mapping_inc.png
cmovne eax, ecx
lea ecx, [esp + 0x334]
push eax
call fcn.005170e0
push 0x588858
lea ecx, [esp + 0x3bc]
call fcn.005170e0
push fcn.00517040
push fcn.00516f80
push 2
push 0x84
lea eax, [esp + 0x23c]
push eax
call fcn.00560316
mov byte [esp + 0xb78], 9
mov ecx, 0x588858
cmp dword [edi + 0x120], 1
mov eax, str.mapping_dec.png
cmovne eax, ecx
lea ecx, [esp + 0x22c]
push eax
call fcn.005170e0
push 0x588858
lea ecx, [esp + 0x2b4]
call fcn.005170e0
cmp dword [edi + 0xa4], 2
lea eax, [edi + 0x138]
sete byte [esp + 0x13]
cmp dword [edi + 0x108], 0
je 0x4bd273
lea eax, [edi + 0x1b8]
xor ecx, ecx
mov dword [esp + 0x40], 7
push 0xffffffffffffffff
push ecx
mov word [esp + 0x34], cx
lea ecx, [esp + 0x34]
push eax
mov dword [esp + 0x48], 0
call fcn.0040ba20
mov byte [esp + 0xb78], 0xa
lea eax, [edi + 0x150]
cmp dword [edi + 0x108], 0
je 0x4bd2b4
lea eax, [edi + 0x1d0]
xor ecx, ecx
mov dword [esp + 0x58], 7
push 0xffffffffffffffff
push ecx
mov word [esp + 0x4c], cx
lea ecx, [esp + 0x4c]
push eax
mov dword [esp + 0x60], 0
call fcn.0040ba20
mov byte [esp + 0xb78], 0xb
cmp byte [edi + 0x99], 0
je 0x4bd2f7
cmp byte [edi + 0x98], 0
mov byte [esp + 0x12], 1
je 0x4bd2fc
mov byte [esp + 0x12], 0
cmp byte [esp + 0x13], 0
jne 0x4bd329
cmp dword [esp + 0x3c], 0
je 0x4bd313
cmp byte [edi + 0x98], 0
jne 0x4bd329
cmp byte [edi + 0x98], 0
jne 0x4bd325
cmp byte [edi + 0x9a], 0
jne 0x4bd329
xor dl, dl
jmp 0x4bd32e
mov edx, 1
mov ecx, dword [edi + 0x220]
push edx
mov eax, dword [ecx]
call dword [eax + 0xe0]
cmp byte [esp + 0x13], 0
je 0x4bd3b2
push 0x100
lea eax, [esp + 0x968]
push 0
push eax
call sub.MSVCR120.dll_memset
push 0x80
push str.mapping_conflict_key_warning_tip
push 0x80
lea eax, [esp + 0x97c]
push eax
push 0
call esi
lea eax, [esp + 0x984]
push eax
call fcn.0051b100
mov edx, eax
add esp, 0x24
test edx, edx
jne 0x4bd4b4
lea eax, [esp + 0x964]
push eax
push eax
call fcn.0051a210
lea eax, [esp + 0x96c]
push eax
call fcn.0051b100
add esp, 0xc
mov edx, eax
jmp 0x4bd4b4
lea ecx, [esp + 0x74]
call fcn.00517a50
test al, al
je 0x4bd3df
push 0x100
lea eax, [esp + 0x968]
push 0
push eax
call sub.MSVCR120.dll_memset
push 0x80
push str.mapping_joystick_key_focus_tip
jmp 0x4bd362
cmp dword [esp + 0x3c], 0
jne 0x4bd423
imul eax, dword [edi + 0x108], 0x84
lea ecx, [esp + 0x43c]
cmp byte [esp + 0x12], 0
jne 0x4bd405
lea ecx, [esp + 0x544]
add ecx, eax
mov eax, dword [edi + 0x220]
mov esi, dword [eax]
call fcn.0041cda0
mov ecx, dword [edi + 0x220]
push eax
call dword [esi + 0x3c]
jmp 0x4bd4c0
cmp byte [edi + 0x98], 0
je 0x4bd4a6
cmp dword [esp + 0x54], 0
je 0x4bd4a6
push str.__v_center__i_mapping_more_description.png_
lea edx, [esp + 0x30]
lea ecx, [esp + 0x60]
call fcn.0041e320
add esp, 4
mov edx, eax
mov byte [esp + 0xb78], 0xc
cmp dword [edx + 0x14], 8
jb 0x4bd45a
mov edx, dword [edx]
mov ecx, dword [edi + 0x220]
push edx
mov eax, dword [ecx]
call dword [eax + 0x3c]
lea ecx, [esp + 0x5c]
mov byte [esp + 0xb78], 0xb
call fcn.0040b900
mov ecx, dword [edi + 0x220]
lea edx, [esp + 0x44]
cmp dword [esp + 0x58], 8
cmovae edx, dword [esp + 0x44]
mov eax, dword [ecx]
push edx
call dword [eax + 0xd0]
mov ecx, dword [edi + 0x220]
push 1
mov eax, dword [ecx]
call dword [eax + 0xf4]
jmp 0x4bd4c0
cmp dword [esp + 0x40], 8
lea edx, [esp + 0x2c]
cmovae edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x220]
push edx
mov eax, dword [ecx]
call dword [eax + 0x3c]
imul eax, dword [edi + 0x108], 0x84
cmp byte [edi + 0x9b], 0
je 0x4bd4dc
lea eax, [esp + eax + 0x85c]
jmp 0x4bd4e3
lea eax, [esp + eax + 0x754]
push eax
lea ecx, [esp + 0x100]
call fcn.00516f20
mov byte [esp + 0xb78], 0xd
mov eax, dword [edi + 0xa4]
cmp eax, 4
je 0x4bd508
cmp eax, 1
jne 0x4bd528
imul eax, dword [edi + 0x108], 0x84
lea ecx, [esp + 0x64c]
add eax, ecx
lea ecx, [esp + 0xfc]
push eax
call fcn.005170c0
lea ecx, [esp + 0xfc]
call fcn.0041cda0
mov ecx, dword [edi + 0x21c]
push eax
call fcn.0052bce0
mov ecx, dword [edi + 0x218]
mov eax, dword [edi + 0x108]
mov edx, dword [ecx]
push dword [esp + eax*4 + 0x20]
call dword [edx + 0x88]
mov ecx, dword [edi + 0x21c]
mov eax, dword [edi + 0x108]
mov edx, dword [ecx]
push dword [esp + eax*4 + 0x20]
call dword [edx + 0x88]
mov ecx, dword [edi + 0x21c]
mov eax, dword [edi + 0x108]
mov edx, dword [ecx]
push dword [esp + eax*4 + 0x18]
call dword [edx + 0x80]
mov ecx, dword [edi + 0x108]
sub esp, 0x10
add ecx, ecx
mov eax, esp
movdqu xmm0, xmmword [esp + ecx*8 + 0x21c]
mov ecx, dword [edi + 0x21c]
movdqu xmmword [eax], xmm0
call fcn.0052a1a0
lea ecx, [esp + 0x5c]
call fcn.00516ee0
push 0x12
push 0x12
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004b6c30
movdqu xmm0, xmmword [esi]
sub esp, 0x10
mov ecx, esp
push dword [0x5e288c]
movdqu xmmword [ecx], xmm0
lea ecx, [esp + 0x348]
push dword [0x5e2888]
push dword [eax + 4]
push dword [eax]
imul eax, dword [edi + 0x108], 0x84
add ecx, eax
call fcn.0041cda0
mov ecx, dword [edi + 0x228]
mov edx, eax
call fcn.0044e2e0
add esp, 0x20
lea ecx, [esp + 0x5c]
call fcn.00516ee0
push 0x12
push 0x12
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004b6c30
movdqu xmm0, xmmword [esi]
sub esp, 0x10
mov ecx, esp
push dword [0x5e288c]
movdqu xmmword [ecx], xmm0
lea ecx, [esp + 0x240]
push dword [0x5e2888]
push dword [eax + 4]
push dword [eax]
imul eax, dword [edi + 0x108], 0x84
add ecx, eax
call fcn.0041cda0
mov ecx, dword [edi + 0x22c]
mov edx, eax
call fcn.0044e2e0
add esp, 0x20
cmp byte [edi + 0x98], 0
jne 0x4bd692
imul eax, dword [edi + 0x108], 0x84
lea ecx, [esp + 0x334]
add ecx, eax
call fcn.00517a50
test al, al
jne 0x4bd692
mov dl, 1
jmp 0x4bd694
xor dl, dl
mov ecx, dword [edi + 0x228]
push edx
mov eax, dword [ecx]
call dword [eax + 0xe0]
cmp byte [edi + 0x98], 0
jne 0x4bd6cc
imul eax, dword [edi + 0x108], 0x84
lea ecx, [esp + 0x22c]
add ecx, eax
call fcn.00517a50
test al, al
jne 0x4bd6cc
mov dl, 1
jmp 0x4bd6ce
xor dl, dl
mov ecx, dword [edi + 0x22c]
push edx
mov eax, dword [ecx]
call dword [eax + 0xe0]
cmp dword [edi + 0x108], 0
jne 0x4bd6f3
cmp dword [edi + 0x120], 1
jne 0x4bd6f3
mov dl, 1
jmp 0x4bd6f5
xor dl, dl
mov ecx, dword [edi + 0x230]
push edx
mov eax, dword [ecx]
call dword [eax + 0xe0]
lea ecx, [esp + 0x74]
call fcn.00517a50
test al, al
je 0x4bd737
cmp byte [esp + 0x12], 0
je 0x4bd726
cmp byte [edi + 0x23c], 0
mov eax, str._i_mapping_empty_bg_1.png_
jne 0x4bd72b
mov eax, str._i_mapping_empty_bg_2.png_
push eax
lea ecx, [esp + 0x78]
call fcn.005170e0
jmp 0x4bd781
lea ecx, [esp + 0x74]
call fcn.00517890
lea ecx, [esp + 0x74]
cmp eax, 1
jne 0x4bd75b
call fcn.0041cda0
push eax
mov eax, str._f_6__s__b__s__b___s___f_
mov ecx, str._f_6__b__s__b___f_
jmp 0x4bd76b
call fcn.0041cda0
push eax
mov eax, str._f_2__s__b__s__b___s___f_
mov ecx, str._f_2__b__s__b___f_
cmp byte [esp + 0x16], 0
cmove eax, ecx
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00517780
add esp, 0xc
mov eax, dword [edi + 0x21c]
lea ecx, [esp + 0x74]
mov esi, dword [eax]
call fcn.0041cda0
mov ecx, dword [edi + 0x21c]
push eax
call dword [esi + 0x3c]
cmp dword [edi + 0x108], 1
jne 0x4bd7b2
cmp byte [edi + 0x9a], 0
je 0x4bd7b2
mov dl, 1
jmp 0x4bd7b4
xor dl, dl
mov ecx, dword [edi + 0x224]
push edx
mov eax, dword [ecx]
call dword [eax + 0xe0]
cmp dword [edi + 0x108], 1
jne 0x4bd832
movdqu xmm2, xmmword [edi + 0x1a0]
lea ecx, [esp + 0x5c]
movsd xmm3, qword [edi + 0x1b0]
movaps xmm1, xmm2
unpckhpd xmm1, xmm2
movapd xmm0, xmm1
subsd xmm1, xmm3
addsd xmm0, xmm3
cvttsd2si eax, xmm0
movapd xmm0, xmm2
subsd xmm2, xmm3
push eax
addsd xmm0, xmm3
cvttsd2si eax, xmm0
push eax
cvttsd2si eax, xmm1
push eax
cvttsd2si eax, xmm2
push eax
call fcn.00516e20
mov ecx, dword [edi + 0x224]
push 1
sub esp, 0x10
movdqu xmm0, xmmword [eax]
mov esi, dword [ecx]
mov edx, esp
movdqu xmmword [edx], xmm0
call dword [esi + 0x4c]
lea ecx, [esp + 0xfc]
mov byte [esp + 0xb78], 0xb
call fcn.00517040
cmp dword [esp + 0x58], 8
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
jb 0x4bd85c
push dword [esp + 0x44]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x58], 7
cmp dword [esp + 0x40], 8
mov dword [esp + 0x54], 0
mov word [esp + 0x44], ax
jb 0x4bd883
push dword [esp + 0x2c]
call esi
add esp, 4
push fcn.00517040
xor eax, eax
mov dword [esp + 0x44], 7
push 2
mov word [esp + 0x34], ax
lea eax, [esp + 0x234]
push 0x84
push eax
mov dword [esp + 0x4c], 0
mov byte [esp + 0xb88], 8
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x340]
mov byte [esp + 0xb84], 5
push eax
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x448]
mov byte [esp + 0xb84], 4
push eax
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x550]
mov byte [esp + 0xb84], 3
push eax
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x658]
mov byte [esp + 0xb84], 2
push eax
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x868]
mov byte [esp + 0xb84], 1
push eax
call fcn.005601c9
push fcn.00517040
push 2
push 0x84
lea eax, [esp + 0x760]
mov byte [esp + 0xb84], 0
push eax
call fcn.005601c9
lea ecx, [esp + 0x74]
mov dword [esp + 0xb78], 0xffffffff
call fcn.00517040
mov ecx, dword [esp + 0xb70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0xb5c]
xor ecx, esp
call fcn.005600c0
mov esp, ebp
pop ebp
ret