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

Disassembly:
retf
inc esp
and al, 0x38
neg eax
lea eax, [esi + eax + 1]
test eax, eax
je fcn.00460328
mov ebx, dword [esp + 0x89c]
mov ecx, dword [esp + 0x894]
cmp eax, 0xffffffff
je 0x46030b
jmp 0x45fdda
lea ecx, [esp + 0x38]
push eax
push ecx
push 0xffffffffffffffff
push dword [0x4b7660]
call fcn.00451080
add esp, 0x10
xor ecx, ecx
call fcn.004610de
jmp fcn.00460328
cmp byte [esi - 0x39], ah
push es
sbb ebx, dword [ebx - 0x3a]
inc esi
add bl, byte [edx - 9]
fmul dword [ebp - 0x16fcf9bc]
mov dh, bh
invalid
push dword [esp + 0x8a0]
push ebx
push dword [esp + 0x8a0]
push ecx
jmp 0x45e031
push ebp
push ebx
push edi
push esi
sub esp, 0xac
mov edi, dword [esp + 0xcc]
mov esi, dword [0x4b507c]
mov eax, ecx
xor ebx, ebx
mov ebp, dword [esp + 0xc8]
mov ecx, edi
xor esi, esp
and ecx, 3
mov ecx, ebp
setne bl
shr ecx, 0x16
inc ebx
and cl, 1
imul ebx, dword [0x4b6c68]
mov dword [esp + 0xa8], esi
mov ebp, ebx
shl ebx, cl
and edi, 3
mov dword [esp + 0x14], ebx
je 0x4630b3
mov esi, dword [0x4b7660]
lea ecx, [eax + eax]
cmp ecx, dword [esi + 0x12c]
jge 0x463e35
imul ebp, eax
mov eax, dword [0x4b6c6c]
mov ecx, dword [esp + 0xc8]
lea esi, [esp + 0xd0]
add ebp, dword [0x4b6c7c]
imul edx, eax
mov dword [esp + 4], ecx
mov dword [esp + 0x20], ebp
add edx, dword [0x4b6c78]
xor ebp, ebp
bt dword [esp + 0xc8], 0x1e
mov dword [esp + 0x3c], edx
jb 0x4630fb
mov dword [esp + 0x28], 0
jmp 0x46313b
cmp dword [0x4b7688], 0
je 0x463113
mov ecx, dword [0x4b7660]
cmp byte [ecx + 0x143], 0
je 0x4630f1
mov ecx, dword [0x495608]
mov dword [esi + 4], ecx
mov dword [esi], ecx
mov ecx, dword [esp + 0xc8]
and ecx, 0xfecc0000
or ecx, 0x20b04
mov dword [esp + 4], ecx
mov cl, 1
mov dword [esp + 0x28], ecx
xor ecx, ecx
inc ecx
test edi, edi
mov dword [esp + 8], ecx
je 0x46314f
cmp dword [0x4b768c], 3
je 0x46316c
test edi, edi
je 0x46315f
cmp edi, 1
jne 0x463163
mov ebp, 4
jmp 0x46316c
mov ebp, edi
jmp 0x463168
mov ebp, 0xc
mov dword [esp + 8], edi
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 4]
mov dword [esp + 0xc], 0
movzx ecx, word [ecx]
shr ebx, 0x13
mov esi, ebx
and esi, 0x10
mov edx, ecx
add edx, 0xffffdc46
cmp dx, 3
ja 0x4631b0
add cl, 0x46
cmp cl, 3
ja case.default.0x4631a3
movzx ecx, cl
jmp dword [ecx*4 + 0x497a3c]
mov dword [esp + 0x38], 0
jmp 0x46320a
xor edx, edx
jmp 0x4631d7
mov eax, dword [esp + 8]
or eax, 1
cmp eax, 3
mov eax, dword [esp + 0xc0]
sete cl
and dword [esp + 4], 0xfff7ffff
and bl, 1
mov dword [esp + 0xc], ebx
shl edx, cl
movzx ecx, word [0x4b684a]
mov dword [esp + 0x38], edx
mov word [eax], cx
mov edx, dword [esp + 0xc4]
mov eax, ecx
or ebp, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x46325b
mov eax, dword [esp + 0xc0]
cmp edx, 2
jl 0x46323f
movzx eax, word [eax + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x463244
jmp 0x46325b
cmp edx, 1
jne 0x46325b
mov ecx, dword [esp + 0xc0]
xor eax, eax
mov word [ecx + eax*2], 0xfffd
inc eax
cmp eax, edx
jl 0x46324d
movzx ecx, word [ecx]
mov esi, dword [esp + 4]
mov eax, ebp
and ecx, 0xff00
mov ebx, 2
or eax, 0x20
cmp ecx, 0xf000
mov ecx, 0x1ff
cmovne eax, ebp
mov edi, esi
mov edx, esi
shr edi, 9
and edx, ecx
and edi, ecx
cmp dword [0x4b6cf4], ebx
mov dword [esp], edx
mov edx, esi
sete cl
shr edx, 0x12
and dl, cl
movzx ecx, dl
or ecx, eax
or ebx, ecx
cmp byte [0x4b6cf8], 0
cmove ebx, ecx
bt esi, 0x13
cmovae ebx, ecx
mov ecx, ebx
call fcn.00463e4e
movzx eax, byte [esp + 0xc]
xor edx, edx
mov ebp, ebx
inc edx
test bl, 2
cmove edx, eax
xor ecx, ecx
and ebp, 0xfffffffc
cmp dword [ebx*4 + 0x4b6cfc], ecx
cmovne ebp, ebx
cmovne edx, eax
mov ecx, ebp
mov dword [esp + 0x60], edx
call fcn.00463e4e
mov eax, dword [ebp*4 + 0x4b6cfc]
test eax, eax
cmove ebp, eax
bt esi, 0x14
mov dword [esp + 0xc], ebp
jb 0x46330c
mov eax, dword [esp]
mov dword [esp], edi
lea esi, [esp + 0xd0]
jmp 0x46331f
lea esi, [esp + 0xd0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, edi
bt dword [esp + 4], 0x12
mov cl, byte [0x4b6dfc]
mov ebp, dword [esp + 0xc0]
setae dl
test cl, cl
sete ch
or ch, dl
mov edx, dword [esp + 0x28]
or dl, ch
jne 0x46335a
cmp eax, 0xf
ja 0x46334e
or eax, 8
jmp 0x46335a
xor edx, edx
cmp eax, 0xff
seta dl
or eax, edx
mov edi, dword [esp]
bt dword [esp + 4], 0x15
jae 0x463380
test cl, cl
je 0x463380
cmp edi, 0xf
ja 0x463373
or edi, 8
jmp 0x463380
xor ecx, ecx
cmp edi, 0xff
seta cl
or edi, ecx
mov ecx, dword [0x4b6ca8]
test ecx, ecx
je 0x46339a
mov edx, dword [eax*4 + 0x4b6e00]
mov esi, dword [edi*4 + 0x4b6e00]
jmp 0x4633c8
cmp byte [esi], 0
je 0x4633ae
movzx edx, byte [esi + 3]
movzx eax, word [esi + 1]
shl edx, 0x10
or edx, eax
jmp 0x4633b5
mov edx, dword [eax*4 + 0x4b6e00]
cmp byte [esi + 4], 0
je 0x463391
movzx eax, word [esi + 5]
movzx esi, byte [esi + 7]
shl esi, 0x10
or esi, eax
bt dword [esp + 4], 0x18
jae 0x463418
test ecx, ecx
jne 0x463418
mov ecx, edx
movzx eax, dl
mov edi, edx
mov edx, 0x1fe
shr ecx, 7
shr edi, 0xf
add eax, eax
and ecx, edx
and edi, edx
imul eax, eax, 0xaaab
imul ecx, ecx, 0xaaab
imul edi, edi, 0xaaab
shr eax, 0x11
shr ecx, 9
shr edi, 1
and ecx, 0xff00
and edi, 0xff0000
or ecx, eax
or edi, ecx
jmp 0x46341a
mov edi, edx
mov eax, dword [esp + 0xc]
push dword [eax*4 + 0x4b6cfc]
push dword [0x4b6ce8]
call dword [0x4b2d30]
mov dword [esp + 0x5c], edi
push edi
push dword [0x4b6ce8]
call dword [0x4b2d50]
push esi
push dword [0x4b6ce8]
call dword [0x4b2d38]
mov eax, dword [esp + 4]
sar eax, 0x1f
add eax, 2
push eax
push dword [0x4b6ce8]
call dword [0x4b2d3c]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
imul eax, esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
add eax, edx
mov edx, dword [0x4b6c6c]
mov dword [esp + 0x7c], eax
add edx, ecx
test esi, esi
mov dword [esp + 0x80], edx
jle 0x463559
mov edi, dword [esp + 0xc4]
xor ecx, ecx
xor eax, eax
xor edx, edx
lea esi, [edx + 1]
cmp esi, edi
movzx edi, word [ebp + edx*2]
jge 0x463522
movzx ebx, di
cmp ebx, 0xdb40
jne 0x4634e4
mov ebp, dword [esp + 0xc0]
movzx ebx, word [ebp + edx*2 + 2]
add ebx, 0x2300
movzx ebx, bx
cmp ebx, 0xf0
jae 0x4634fb
jmp 0x463545
mov ebp, dword [esp + 0xc0]
mov ebx, edi
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x463522
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc0]
movzx ebx, word [ebx + edx*2 + 2]
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x463522
add eax, dword [esp + 0x14]
jmp 0x463545
lea esi, [edi - 0x180b]
cmp si, 3
jb 0x463543
mov esi, dword [esp + 0x14]
and edi, 0xfff0
cmp edi, 0xfe00
cmove esi, ecx
add eax, esi
mov esi, edx
mov edi, dword [esp + 0xc4]
inc esi
mov edx, esi
cmp esi, edi
jl 0x4634ae
jmp 0x46355b
xor eax, eax
add eax, dword [esp + 0x20]
mov ecx, dword [0x4b7660]
mov dword [esp + 0x7c], eax
mov ecx, dword [ecx + 0x12c]
imul ecx, dword [0x4b6c68]
add ecx, dword [0x4b6c7c]
cmp eax, ecx
jle 0x463584
mov dword [esp + 0x7c], ecx
cmp byte [0x4b7218], 1
mov esi, dword [esp + 0x38]
jne 0x4635c8
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [esp + 0x30], ecx
push 6
push dword [0x4b6ce8]
call dword [0x4b2d4c]
mov edx, dword [esp + 0xc4]
xor eax, eax
mov dword [esp + 0x10], 0
inc eax
mov dword [esp + 0x54], eax
jmp 0x4635f2
push 0
push dword [0x4b6ce8]
call dword [0x4b2d4c]
mov edx, dword [esp + 0xc4]
mov eax, dword [0x4b6cec]
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x54], edx
test edx, edx
jle 0x463d9b
mov eax, dword [esp + 0x3c]
cmp dword [esp + 4], 0
lea eax, [esi + eax]
setns byte [esp + 0x1f]
mov dword [esp + 0x2c], eax
mov al, 1
mov esi, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0x24], eax
cmp esi, edx
cmovle ecx, esi
cmp esi, 1
mov ebx, ecx
mov dword [esp + 0x68], ecx
jne 0x4636b9
movzx eax, word [ebp]
mov ebx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x463656
movzx eax, word [ebp + 2]
xor ebx, ebx
and eax, 0xfc00
cmp eax, 0xdc00
sete bl
add ebx, ecx
mov eax, edx
sub eax, ebx
jle 0x4636b9
movzx ecx, word [ebp + ebx*2]
mov esi, edx
mov edi, ebx
lea edx, [ecx - 0x180b]
cmp dx, 3
jb 0x4636ae
mov edx, ecx
and edx, 0xfffffff0
movzx edx, dx
cmp edx, 0xfe00
je 0x4636ae
cmp eax, 2
jl 0x4636b5
movzx eax, cx
mov edx, esi
cmp eax, 0xdb40
jne 0x4636b7
movzx eax, word [ebp + edi*2 + 2]
mov ebx, edi
lea ecx, [edi + 2]
add eax, 0x2300
movzx eax, ax
cmp eax, 0xf0
cmovb ebx, ecx
jmp 0x4636b9
mov ebx, edi
mov edx, esi
inc ebx
jmp 0x4636b9
mov edx, esi
mov ebx, edi
cmp ebx, dword [0x4b6cf0]
mov dword [esp + 0x6c], edx
jbe 0x4636f2
xor eax, eax
push eax
push 1
push ebx
push 4
push 0x4b6cf0
push dword [0x4b6cec]
call fcn.00410dd9
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov dword [0x4b6cec], eax
test ecx, ecx
cmovne ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp], ebx
jle 0x4637c9
mov eax, dword [0x4b6cec]
xor ecx, ecx
mov esi, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [edx], esi
lea esi, [ecx + 1]
movzx edi, word [ebp + ecx*2]
cmp esi, ebx
jge 0x46378a
movzx ebx, di
cmp ebx, 0xdb40
jne 0x463750
mov ebp, dword [esp + 0x18]
movzx ebx, word [ebp + ecx*2 + 2]
add ebx, 0x2300
movzx ebx, bx
cmp ebx, 0xef
ja 0x463764
test ecx, ecx
jle 0x46377f
mov dword [eax + ecx*4 - 4], 0
jmp 0x46377f
mov ebp, dword [esp + 0x18]
mov ebx, edi
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x46378a
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
movzx ebx, word [ebx + ecx*2 + 2]
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x46378a
mov dword [edx], 0
lea edx, [eax + esi*4]
jmp 0x4637b5
lea esi, [edi - 0x180b]
cmp si, 3
jb 0x4637a7
and edi, 0xfff0
movzx esi, di
cmp esi, 0xfe00
jne 0x4637bd
test ecx, ecx
jle 0x4637b3
mov dword [eax + ecx*4 - 4], 0
mov esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [edx], ecx
mov ecx, esi
mov ebx, dword [esp]
inc ecx
cmp ecx, ebx
jl 0x463708
movzx eax, word [ebp]
cmp byte [0x4b615c], 0
je 0x463989
mov ecx, eax
and ecx, 0xff00
movzx ecx, cx
cmp ecx, 0xf100
jne 0x463989
cmp ebx, dword [0x4b7220]
jle 0x463828
push dword [0x4b721c]
call fcn.00410dcd
add esp, 4
mov eax, dword [esp]
mov dword [0x4b7220], eax
push 0
push 2
push dword [esp + 8]
call fcn.00410d50
mov ebx, dword [esp + 0xc]
add esp, 0xc
mov dword [0x4b721c], eax
test ebx, ebx
jle 0x463e35
xor edi, edi
xor ebx, ebx
xor esi, esi
mov eax, dword [0x4b721c]
mov ebp, dword [esp + 0x18]
mov word [eax + esi*2], 0xfffd
movzx eax, byte [ebp + ebx*2]
push eax
push dword [0x4b6160]
call dword [0x4b3104]
test eax, eax
je 0x46388c
mov al, byte [ebp + ebx*2]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x84], al
mov al, byte [ebp + ebx*2 + 2]
inc ebx
mov byte [esp + 0x85], al
mov eax, dword [0x4b6cec]
add dword [eax + esi*4], ecx
mov eax, dword [0x4b721c]
add eax, edi
push 1
push eax
push 2
jmp 0x4638a4
mov al, byte [ebp + ebx*2]
mov byte [esp + 0x84], al
mov eax, dword [0x4b721c]
add eax, edi
xor ecx, ecx
inc ecx
push ecx
push eax
push ecx
lea eax, [esp + 0x90]
push eax
push 4
push dword [0x4b6160]
call dword [0x4b3144]
inc ebx
inc esi
add edi, 2
cmp ebx, dword [esp]
jl 0x463836
movzx eax, byte [esp + 0x24]
xor ecx, ecx
mov edx, 0
mov edi, dword [esp + 0x30]
sub ecx, dword [0x4b6c6c]
and eax, 1
cmp dword [esp + 8], 3
lea eax, [eax + eax + 4]
cmovne ecx, edx
mov edx, dword [esp + 0x20]
add ecx, dword [esp + 0x2c]
add edi, edx
push dword [esp + 0x10]
push esi
push dword [0x4b721c]
lea edx, [esp + 0x80]
push edx
push eax
push ecx
push edi
push dword [0x4b6ce8]
call dword [0x4b2cdc]
bt dword [esp + 4], 0x12
jae 0x463975
cmp dword [0x4b6cf4], 1
jne 0x463975
push 1
push dword [0x4b6ce8]
call dword [0x4b2d3c]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec edi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push esi
push dword [0x4b721c]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push edi
push dword [0x4b6ce8]
call dword [0x4b2cdc]
mov eax, dword [0x4b6cec]
mov ebp, dword [esp + 0x18]
mov dword [eax], 0xffffffff
jmp 0x463d6b
and eax, 0xfe00
cmp eax, 0xf000
jne 0x463a84
xor eax, eax
push eax
xor eax, eax
inc eax
push eax
push ebx
push eax
push 0x4b7228
push dword [0x4b7224]
call fcn.00410dd9
add esp, 0x18
test ebx, ebx
mov dword [0x4b7224], eax
je 0x4639cc
xor ecx, ecx
mov dl, byte [ebp + ecx*2]
mov byte [eax + ecx], dl
inc ecx
cmp ebx, ecx
jne 0x4639c0
movzx ecx, byte [esp + 0x24]
xor edx, edx
mov esi, 0
mov edi, dword [esp + 0x30]
sub edx, dword [0x4b6c6c]
and ecx, 1
cmp dword [esp + 8], 3
lea ecx, [ecx + ecx + 4]
cmovne edx, esi
mov esi, dword [esp + 0x20]
add edx, dword [esp + 0x2c]
add esi, edi
push dword [esp + 0x10]
push ebx
push eax
lea eax, [esp + 0x80]
push eax
push ecx
push edx
push esi
push dword [0x4b6ce8]
call dword [0x4b2cd8]
bt dword [esp + 4], 0x12
jae 0x463d6b
cmp dword [0x4b6cf4], 1
jne 0x463d6b
push 1
push dword [0x4b6ce8]
call dword [0x4b2d3c]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec esi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push dword [esp + 4]
push dword [0x4b7224]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push esi
push dword [0x4b6ce8]
call dword [0x4b2cd8]
jmp 0x463d6b
cmp dword [0x4b7230], ebx
jge 0x463abb
push dword [0x4b722c]
call fcn.00410dcd
add esp, 4
mov eax, dword [esp]
mov dword [0x4b7230], eax
push 0
push 2
push dword [esp + 8]
call fcn.00410d50
mov ebx, dword [esp + 0xc]
add esp, 0xc
mov dword [0x4b722c], eax
mov edi, dword [0x4b722c]
test ebx, ebx
jle 0x463ad5
xor eax, eax
movzx ecx, word [ebp + eax*2]
mov word [edi + eax*2], cx
inc eax
cmp ebx, eax
jne 0x463ac7
xor eax, eax
cmp dword [esp + 8], 3
jne 0x463ae3
mov eax, dword [0x4b6c6c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp dword [esp], 0
lea esi, [ecx + edx]
jle 0x463d0c
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp]
xor ebx, ebx
mov ebp, esi
mov dword [esp + 0x64], esi
sub ecx, eax
mov eax, dword [0x4b6cec]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [0x4b6ce8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
and al, byte [esp + 0x1f]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], ebp
movzx eax, word [eax + ebx*2]
push eax
call fcn.00410efc
mov edx, dword [esp + 0x54]
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
mov byte [esp + 0xc], al
lea ecx, [ecx + ebx*4]
inc ebx
mov ebp, dword [ecx]
add ebp, edx
cmp ebx, edi
jge 0x463b96
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
movzx eax, word [edi + ebx*2]
push eax
call fcn.00410efc
add esp, 4
cmp byte [esp + 0xc], al
jne 0x463b90
mov eax, dword [esp + 0x28]
add ebp, dword [eax + ebx*4]
mov eax, dword [esp]
inc ebx
cmp eax, ebx
jne 0x463b6c
mov ebx, eax
mov ecx, dword [esp + 0x34]
jmp 0x463b9a
mov edi, dword [esp + 0x4c]
xor eax, eax
cmp byte [0x4b7218], al
mov edx, dword [esp + 0x48]
mov esi, ebx
cmovne ecx, eax
sub esi, edx
cmp byte [esp + 0xc], 0
lea edi, [edi + edx*2]
je 0x463caf
lea edx, [esi + esi + 2]
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], edx
push eax
xor eax, eax
inc eax
push eax
push edx
mov dword [esp + 0x18], edi
xor esi, esi
mov dword [esp + 0x40], ecx
call fcn.00410d50
add esp, 0xc
mov edi, eax
push esi
xor eax, eax
inc eax
push eax
push dword [esp + 0x4c]
call fcn.00410d50
add esp, 0xc
mov esi, eax
lea eax, [esp + 0x88]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x18], ecx
push dword [esp + 0x70]
push ecx
mov dword [esp + 0x50], edi
push edi
call fcn.004723e0
add esp, 0xc
push dword [esp + 0x44]
push 3
push esi
call fcn.004723e0
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x84], 0x24
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov dword [esp + 0xa0], ecx
push 0x8113b
lea eax, [esp + 0x88]
push eax
mov eax, 0
push eax
push ecx
mov esi, ecx
push dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
push edi
call dword [0x4b2cf8]
movzx eax, byte [esp + 0x24]
xor ecx, ecx
inc ecx
and eax, ecx
lea eax, [eax + eax + 0x14]
push dword [esp + 0x34]
push esi
push dword [esp + 0x50]
lea ecx, [esp + 0x80]
push ecx
push eax
push dword [esp + 0x6c]
push dword [esp + 0x68]
push edi
call dword [0x4b2cd8]
jmp 0x463cda
movzx eax, byte [esp + 0x24]
and eax, 1
lea eax, [eax + eax + 4]
push ecx
push esi
push edi
lea ecx, [esp + 0x80]
push ecx
push eax
push dword [esp + 0x6c]
push dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
push edi
call dword [0x4b2cdc]
push edi
call dword [0x4b2ce0]
mov esi, eax
push 1
push edi
call dword [0x4b2d3c]
mov edi, dword [esp]
xor eax, eax
cmp ebx, edi
jl 0x463b2f
push esi
push dword [esp + 0x44]
call dword [0x4b2d3c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x64]
bt dword [esp + 4], 0x12
jae 0x463d6b
cmp dword [0x4b6cf4], 1
jne 0x463d6b
push 1
push dword [0x4b6ce8]
call dword [0x4b2d3c]
xor eax, eax
mov ecx, 0
sub eax, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne eax, ecx
dec esi
add eax, dword [esp + 0x2c]
push dword [esp + 0x10]
push dword [esp + 4]
push dword [0x4b722c]
lea ecx, [esp + 0x80]
push ecx
push 4
push eax
push esi
push dword [0x4b6ce8]
call dword [0x4b2cdc]
push 1
push dword [0x4b6ce8]
call dword [0x4b2d3c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp]
mov edx, dword [esp + 0x6c]
imul eax, dword [esp + 0x14]
lea ebp, [ebp + ecx*2]
add dword [esp + 0x20], eax
xor eax, eax
sub edx, ecx
jg 0x463611
cmp dword [esp + 8], 2
je 0x463e35
bt dword [esp + 4], 0x13
setae al
cmp byte [esp + 0x60], 0
jne 0x463dc0
or al, byte [0x4b6cf8]
test al, 1
jne 0x463e35
mov eax, dword [0x4b7234]
lea edi, [eax + eax]
sub edi, dword [0x4b6c6c]
cmp dword [esp + 8], 3
cmovne edi, eax
xor ebp, ebp
push dword [esp + 0x5c]
push ebp
push ebp
call dword [0x4b2cc4]
mov ebx, dword [0x4b2d30]
push eax
push dword [0x4b6ce8]
call ebx
mov esi, eax
mov eax, dword [esp + 0x78]
add eax, edi
push ebp
push eax
push dword [esp + 0x7c]
push dword [0x4b6ce8]
call dword [0x4b2d20]
add edi, dword [esp + 0x78]
push edi
push dword [esp + 0x80]
push dword [0x4b6ce8]
call dword [0x4b2d1c]
push esi
push dword [0x4b6ce8]
call ebx
push eax
call dword [0x4b2cd0]
mov ecx, dword [esp + 0xa8]
xor ecx, esp
call fcn.0046f2c8
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret