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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x218
push ebx
push ebp
push esi
push edi
xor ebp, ebp
mov ecx, 0x29b
mov eax, 0x28e
mov edx, 2
mov edi, 0x64
mov ebx, 1
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0xe9
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x11b
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], 0x1f4
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], 0x138
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0x16a
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], 0xc8
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], 0x276
mov dword [esp + 0xa0], 0x1a4
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], 0x285
mov dword [esp + 0xac], 0x1e4
mov dword [esp + 0xb0], 0xa
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebp
call fcn.00422660
mov ecx, 0x6694d0
mov dword [esp + 0x3c], eax
call fcn.0043d530
mov esi, dword [0x48534c]
mov dword [esp + 0x34], eax
push 0x66c0e4
lea eax, [esp + 0x128]
push str._smenu_setting.rom
push eax
mov dword [0x668e08], 0x634bc8
call esi
lea ecx, [esp + 0x130]
push ecx
call fcn.00401070
push 0x66c0e4
lea edx, [esp + 0x138]
push str._swav_selrole.rom
push edx
mov dword [0x668e04], eax
call esi
add esp, 0x1c
lea eax, [esp + 0x124]
mov ecx, 0x6694d0
push eax
call fcn.0043cd10
mov dword [0x668e0c], eax
mov eax, 0x4982e0
mov dword [eax], 0xffffffff
add eax, 0x34
cmp eax, str._a_a_b_t_n_n_v_f_r
jl 0x43821c
call fcn.00401950
mov ecx, dword [0x668e04]
push ebp
push 0x3ff00000
push ebp
push ebp
push ebp
push ebp
push ebp
push ecx
mov esi, eax
push 0x258
push 0x190
push esi
mov dword [esp + 0x6c], esi
call fcn.00401b10
push ebp
push esi
call fcn.00402840
call fcn.00401950
mov edx, dword [0x668e04]
mov esi, eax
push ebx
push edx
mov dword [esp + 0x5c], esi
call fcn.00401770
mov ecx, dword [0x668e04]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
push ebp
push 0x3ff00000
push ebp
push ebp
push edi
push ebp
push ebx
push ecx
push edx
push eax
push esi
call fcn.00401b10
add esp, 0x68
push 0x10
push 0xc0
push 0x100
push 2
push esi
call fcn.00402a10
call fcn.00401950
mov ecx, dword [0x668e04]
mov esi, eax
push 2
push ecx
mov dword [esp + 0x38], esi
call fcn.00401770
mov edx, dword [0x668e04]
mov ecx, dword [eax + 8]
push ebp
push 0x3ff00000
push ebp
push ebp
push edi
push ebp
push 2
push edx
mov edx, dword [eax + 4]
push ecx
push edx
push esi
call fcn.00401b10
add esp, 0x48
push 0x10
push 0xc0
push 0x100
push 2
push esi
call fcn.00402a10
call fcn.00401950
mov ecx, eax
push ebp
mov dword [esp + 0x40], ecx
mov eax, dword [0x668e04]
mov edx, dword [0x668e08]
push 0x3ff00000
push ebp
push ebp
push edi
push ebp
push 4
push eax
xor eax, eax
mov al, byte [edx + 1]
lea eax, [eax + eax*4]
lea eax, [eax + eax*8 + 0x92]
push eax
push 0x2d0
push ecx
call fcn.00401b10
add esp, 0x40
xor ebx, ebx
lea edi, [esp + 0xd4]
xor esi, esi
mov ecx, dword [0x668e04]
lea eax, [ebx + 5]
push esi
push eax
push ecx
call fcn.004017d0
add esp, 0xc
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, 0xa
jl 0x43834c
inc ebx
cmp ebx, 2
jl 0x43834a
mov edx, dword [0x668e04]
push 3
push edx
call fcn.00401880
add esp, 8
mov ebp, eax
mov edi, 4
lea esi, [esp + 0x50]
call fcn.00407b00
mov ebx, eax
mov eax, dword [0x668e08]
lea edx, [esp + 0xbc]
mov dword [esi - 0xc], ebx
mov ecx, dword [edi + eax]
push ecx
push 0x494050
push edx
call dword [0x48534c]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esi - 8]
push 0
push 0x3ff00000
lea ecx, [eax + eax*4]
mov eax, dword [esi]
push 0
push ebp
lea edx, [esp + ecx*8 + 0xf4]
mov ecx, dword [esi - 4]
push 0x3e8
push edx
push eax
push ecx
push ebx
call fcn.00408c80
push 0xffffffffffffffff
push ebx
call fcn.00408460
call fcn.00401950
mov ebx, eax
mov eax, dword [0x668e04]
push 0
mov dword [esi + 4], ebx
mov dl, byte [esi - 8]
mov ecx, dword [esi + 0xc]
push 0x3ff00000
push 0
push 0
push 0x64
add dl, 7
push 0
push edx
mov edx, dword [0x668e08]
push eax
push ecx
mov eax, dword [edi + edx]
mov ecx, dword [esi + 0x18]
sub eax, ecx
cdq
idiv dword [esi + 0x14]
mov edx, dword [esi + 8]
imul eax, dword [esi + 0x10]
add eax, edx
push eax
push ebx
call fcn.00401b10
add esp, 0x68
push 0x10
push 0xc0
push 0x100
push 2
push ebx
call fcn.00402a10
add edi, 4
add esp, 0x14
add esi, 0x28
cmp edi, 0x10
jl 0x43838d
mov eax, str.___._0123456
mov dword [0x4982dc], 0x498270
mov dword [0x498310], eax
mov dword [0x498344], 0x498280
mov dword [0x498378], eax
xor edi, edi
call fcn.00401950
mov edx, dword [0x668e04]
lea ecx, [edi + edi*2]
push 0
push 0x3ff00000
lea esi, [edi + ecx*4]
push 0
shl esi, 2
push 0
push 0xc8
push 0
mov dword [esi + 0x4982b0], eax
mov ecx, dword [esi + 0x4982bc]
push 9
push edx
mov edx, dword [esi + 0x4982b8]
push ecx
push edx
push eax
call fcn.00401b10
mov eax, dword [esi + 0x4982b0]
push 0x10
push 0xc0
push 0x100
push 2
push eax
call fcn.00402a10
add esp, 0x40
call fcn.00401950
mov ecx, dword [0x668e04]
push 0
push 0x3ff00000
push 0
push 0
push 0xc8
push 1
mov dword [esi + 0x4982b4], eax
mov edx, dword [esi + 0x4982c4]
push 9
push ecx
mov ecx, dword [esi + 0x4982c0]
push edx
push ecx
push eax
call fcn.00401b10
mov edx, dword [esi + 0x4982b4]
push 0x10
push 0xc0
push 0x100
push 2
push edx
call fcn.00402a10
add esp, 0x40
call fcn.00401950
mov edx, dword [0x668e04]
push 0
push 0x3ff00000
push 0
mov dword [esi + 0x4982c8], eax
mov cl, byte [esi + 0x4982cc]
push 0
push 0xbe
push 0
push ecx
mov ecx, dword [esi + 0x4982bc]
push edx
mov edx, dword [esi + 0x4982d0]
push ecx
mov ecx, dword [esi + 0x4982b8]
lea edx, [edx + ecx + 0x3b]
push edx
push eax
call fcn.00401b10
mov eax, dword [esi + 0x4982c8]
push 0x10
push 0x70
push 0x100
push 2
push eax
call fcn.00402a10
add esp, 0x40
call fcn.00407b00
mov ecx, dword [0x6349a8]
push 0
push 0x3ff00000
push 0
push 6
push ecx
mov dword [esi + 0x4982d4], eax
call fcn.00401880
add esp, 8
mov ecx, dword [0x6349a8]
xor edx, edx
push eax
mov eax, dword [0x668e08]
push 0xc8
push 1
mov dl, byte [edi + eax + 0x10]
push edx
push 0xe
push ecx
call fcn.004017d0
mov edx, dword [esi + 0x4982bc]
mov ecx, dword [esi + 0x4982b8]
add esp, 0xc
sub edx, 0x20
push eax
mov eax, dword [esi + 0x4982d0]
push edx
lea edx, [eax + ecx + 0x14]
mov eax, dword [esi + 0x4982d4]
push edx
push eax
call fcn.00408a50
call fcn.00401950
mov edx, dword [0x668e08]
xor ecx, ecx
mov dword [esi + 0x4982d8], eax
mov eax, dword [esi + 0x4982dc]
mov cl, byte [edi + edx + 0x10]
xor ebx, ebx
mov bl, byte [ecx + eax]
mov ecx, dword [0x668e04]
push ebx
push ecx
call fcn.00401770
add esp, 0x30
cmp edi, 3
push 0
push 0x3ff00000
push 0
push 0
jne 0x43867c
mov edx, dword [0x4982ac]
mov ecx, dword [0x668e04]
add edx, 0x96
push edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
push 1
push ebx
push ecx
mov ecx, dword [0x498374]
push edx
push eax
jmp 0x4386a2
mov dx, word [edi*4 + 0x4982a0]
mov ecx, dword [0x668e04]
add dx, 0x96
push edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
push 0
push ebx
push ecx
mov ecx, dword [esi + 0x4982d8]
push edx
push eax
push ecx
call fcn.00401b10
add esp, 0x2c
inc edi
cmp edi, 4
jl 0x438487
call fcn.00407d20
push 8
push 8
push 1
push 1
push 0
call fcn.0040bd00
add esp, 0x14
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x38], 0
call fcn.004454f0
cmp dword [esp + 0x10], 3
jne 0x438795
push 0
call fcn.004234d0
add esp, 4
test eax, eax
je 0x438795
call fcn.00423480
mov edi, eax
call fcn.00423490
mov esi, dword [esp + 0x18]
lea esi, [esi + esi*4]
shl esi, 3
mov ebp, dword [esp + esi + 0x58]
sub edi, ebp
jns 0x438720
xor edi, edi
jmp 0x43872a
cmp edi, 0x64
jle 0x43872a
mov edi, 0x64
mov eax, edi
mov ebx, dword [esp + esi + 0x68]
cdq
idiv dword [esp + esi + 0x60]
mov ecx, dword [0x668e08]
mov edx, eax
mov eax, dword [esp + 0x18]
imul edx, dword [esp + esi + 0x64]
add edx, ebx
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [0x668e08]
mov ecx, dword [esp + esi + 0x44]
mov eax, dword [edx + eax*4 + 4]
push eax
push 0x494050
push ecx
call fcn.004081b0
mov ebx, dword [esp + esi + 0x68]
add edi, ebp
push ebx
push edi
push str.__d__d_
push 0x7c00
push 0x64
push 0
call fcn.00441df0
mov edx, dword [esp + esi + 0x78]
push ebx
push edi
push edx
call fcn.00402620
add esp, 0x30
jmp case.0x438b8b.3
call fcn.004234a0
test eax, eax
je case.default.0x4387c6
call fcn.00423480
mov ebx, eax
mov dword [esp + 0x24], ebx
call fcn.00423490
mov ebp, eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x30], ebp
cmp eax, 5
ja case.default.0x4387c6
jmp dword [eax*4 + 0x438d8c]
mov esi, dword [esp + 0x20]
push ebp
push ebx
push esi
call fcn.00402b00
add esp, 0xc
test eax, eax
je 0x43880f
push 0x10
push 0x100
push 0x80
push 5
push esi
mov dword [esp + 0x24], 0
call fcn.00402a10
push 0
push 1
push 4
call fcn.0040aa40
add esp, 0x20
jmp case.default.0x4387c6
mov esi, dword [esp + 0x1c]
push ebp
push ebx
push esi
call fcn.00402b00
add esp, 0xc
test eax, eax
je 0x438851
push 0x10
push 0x100
push 0x80
push 5
push esi
mov dword [esp + 0x24], 1
call fcn.00402a10
push 0
push 1
push 4
call fcn.0040aa40
add esp, 0x20
jmp case.default.0x4387c6
cmp ebx, 0x271
jl 0x43887b
cmp ebx, 0x2f8
jg 0x43887b
cmp ebp, 0x6e
jl 0x43887b
cmp ebp, 0xc3
jg 0x43887b
mov dword [esp + 0x10], 2
jmp case.default.0x4387c6
xor esi, esi
lea edi, [esp + 0x54]
mov ecx, dword [edi]
push ebp
push ebx
push ecx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x43889d
inc esi
add edi, 0x28
cmp esi, 3
jl 0x438881
jmp 0x4388c7
lea edx, [esi + esi*4]
push 0x10
push 0x100
push 0x80
mov eax, dword [esp + edx*8 + 0x60]
push 5
push eax
mov dword [esp + 0x24], 3
mov dword [esp + 0x2c], esi
call fcn.00402a10
add esp, 0x14
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x14], 0x4982b0
mov edi, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x4388fd
inc esi
add edi, 4
cmp esi, 2
jl 0x4388d9
jmp 0x43892e
lea ecx, [esi + ebp]
push 0x10
push 0x100
push 0x80
mov edx, dword [ecx*4 + 0x4982b0]
push 5
push edx
mov dword [esp + 0x24], 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], esi
call fcn.00402a10
add esp, 0x14
mov eax, dword [esp + 0x14]
inc ebx
add eax, 0x34
add ebp, 0xd
cmp eax, 0x498380
mov dword [esp + 0x14], eax
jl 0x4388d3
jmp case.default.0x4387c6
mov eax, dword [esp + 0x20]
push ebp
push ebx
push eax
call fcn.00402b00
add esp, 0xc
test eax, eax
jne case.default.0x4387c6
mov ecx, dword [esp + 0x20]
push 0x10
push 0xc0
push 0x100
push 2
push ecx
call fcn.00402a10
add esp, 0x14
mov dword [esp + 0x10], 0xffffffff
jmp case.default.0x4387c6
mov edx, dword [esp + 0x1c]
push ebp
push ebx
push edx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne case.default.0x4387c6
mov eax, dword [esp + 0x1c]
push 0x10
push 0xc0
push 0x100
push 2
push eax
call fcn.00402a10
add esp, 0x14
mov dword [esp + 0x10], 0xffffffff
jmp case.default.0x4387c6
cmp ebx, 0x271
jl 0x4389e8
cmp ebx, 0x2f8
jg 0x4389e8
cmp ebp, 0x6e
jl 0x4389e8
cmp ebp, 0xc3
jle case.default.0x4387c6
mov dword [esp + 0x10], 0xffffffff
jmp case.default.0x4387c6
xor esi, esi
lea edi, [esp + 0x54]
mov ecx, dword [edi]
push ebp
push ebx
push ecx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x438a17
inc esi
add edi, 0x28
cmp esi, 3
jl 0x4389fb
jmp 0x438a20
cmp esi, 0xffffffff
jne case.default.0x4387c6
mov eax, dword [esp + 0x18]
push 0x10
push 0xc0
push 0x100
lea edx, [eax + eax*4]
push 2
mov dword [esp + 0x20], 0xffffffff
mov eax, dword [esp + edx*8 + 0x64]
push eax
jmp 0x438ad1
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x14], 0
mov ebp, 0x4982b0
xor edi, edi
mov esi, ebp
mov ecx, dword [esp + 0x30]
mov edx, dword [esi]
push ecx
push ebx
push edx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x438a80
inc edi
add esi, 4
cmp edi, 2
jl 0x438a60
jmp 0x438a88
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x14]
add ebp, 0x34
inc edx
cmp ebp, 0x498380
mov dword [esp + 0x14], edx
jl 0x438a5c
cmp dword [esp + 0x24], 0xffffffff
jne case.default.0x4387c6
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
add edx, eax
push 0x10
lea ecx, [eax + eax*2]
push 0xc0
push 0x100
push 2
lea eax, [edx + ecx*4]
mov dword [esp + 0x20], 0xffffffff
mov ecx, dword [eax*4 + 0x4982b0]
push ecx
call fcn.00402a10
add esp, 0x14
push 1
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x438b6d
call fcn.00423520
test eax, eax
jne 0x438b6d
push 1
call fcn.004234f0
add esp, 4
test eax, eax
jne 0x438b0f
call fcn.00423530
test eax, eax
je case.0x438b8b.3
call fcn.00423480
mov edi, eax
call fcn.00423490
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jne case.0x438b8b.3
xor ebp, ebp
mov esi, 0x4982d4
mov edx, dword [esi + 4]
push ebx
push edi
push edx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x438b65
mov eax, dword [esi]
push ebx
push edi
push eax
call fcn.004093a0
add esp, 0xc
test eax, eax
jne 0x438b65
add esi, 0x34
inc ebp
cmp esi, 0x4983a4
jl 0x438b31
jmp case.0x438b8b.3
push 1
push ebp
jmp 0x438c4d
call fcn.00423480
mov ebx, eax
call fcn.00423490
mov ecx, dword [esp + 0x10]
mov edi, eax
lea eax, [ecx + 1]
cmp eax, 5
ja case.0x438b8b.3
jmp dword [eax*4 + 0x438da4]
xor ebp, ebp
mov esi, 0x4982d4
mov edx, dword [esi + 4]
push edi
push ebx
push edx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x438bcd
mov eax, dword [esi]
push edi
push ebx
push eax
call fcn.004093a0
add esp, 0xc
test eax, eax
jne 0x438bcd
add esi, 0x34
inc ebp
cmp esi, 0x4983a4
jl 0x438b99
jmp case.0x438b8b.3
push 0
push ebp
jmp 0x438c4d
add edi, 0xffffff92
mov eax, 0x2fa0be83
imul edi
sar edx, 3
mov ecx, edx
mov ebx, edx
mov edx, dword [0x668e08]
shr ecx, 0x1f
mov al, byte [edx + 1]
add ebx, ecx
cmp bl, al
je case.0x438b8b.3
push 0
push 1
push 5
call fcn.0040aa40
mov eax, dword [0x668e08]
mov esi, dword [esp + 0x34]
mov byte [eax + 1], bl
mov ecx, dword [0x668e08]
xor eax, eax
mov al, byte [ecx + 1]
lea eax, [eax + eax*4]
lea edx, [eax + eax*8 + 0x92]
push edx
push 0x2d0
push esi
call fcn.00402620
push 0x20
push 0x100
push 0
push 1
push esi
call fcn.00402a10
add esp, 0x2c
jmp case.0x438b8b.3
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call fcn.00438dc0
add esp, 8
cmp dword [0x66c0e0], 1
je 0x438cb9
jmp 0x4386dc
xor ebx, ebx
push ebx
push 1
push 3
call fcn.0040aa40
add esp, 0xc
jmp 0x438cbd
mov ebx, 1
push 0
push ebx
push 3
call fcn.0040aa40
mov edx, dword [0x668e04]
mov eax, dword [esp + 0x28]
push 3
push edx
push eax
call fcn.00402320
push 3
call fcn.0040aaa0
add esp, 0x1c
test eax, eax
je 0x438cbd
call fcn.004454f0
push 3
call fcn.0040aaa0
add esp, 4
test eax, eax
jne 0x438ca4
jmp 0x438cbd
mov ebx, dword [esp + 0x38]
mov esi, 0x4982b4
mov ecx, dword [esi - 4]
push ecx
call fcn.00401a90
mov edx, dword [esi]
push edx
call fcn.00401a90
mov eax, dword [esi + 0x24]
push eax
call fcn.00401a90
mov ecx, dword [esi + 0x14]
push ecx
call fcn.00401a90
mov edx, dword [esi + 0x20]
push edx
call fcn.00407cb0
add esi, 0x34
add esp, 0x14
cmp esi, 0x498384
jl 0x438cc2
lea esi, [esp + 0x54]
mov edi, 3
mov eax, dword [esi - 0x10]
push eax
call fcn.00407cb0
mov ecx, dword [esi]
push ecx
call fcn.00401a90
add esp, 8
add esi, 0x28
dec edi
jne 0x438d05
mov edx, dword [esp + 0x28]
push edx
call fcn.00401a90
mov eax, dword [esp + 0x20]
push eax
call fcn.00401a90
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00401a90
mov edx, dword [esp + 0x4c]
push edx
call fcn.00401a90
mov eax, dword [0x668e04]
push eax
call fcn.004016e0
mov ecx, dword [esp + 0x48]
add esp, 0x14
push ecx
mov ecx, 0x6694d0
call fcn.0043d560
mov edx, dword [esp + 0x3c]
push edx
call fcn.00422680
push 8
push 8
push 1
push 2
push 0
call fcn.0040bd00
add esp, 0x18
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret