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

Disassembly:
push 0xffffffffffffffff
push 0x43e006
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
mov eax, dword [esp + 0xa4]
cmp eax, 0x20
push esi
mov dword [esp + 0x10], ecx
mov dword [esp + 4], 0
jne 0x406a33
mov eax, dword [ecx + 0x25488]
mov esi, dword [ecx + 0x25464]
mov ecx, dword [ecx + 0x25468]
mov dword [esp + 0xa8], eax
mov dword [esp + 4], ecx
jmp 0x406a47
movsx edx, byte [ecx + eax*2 + 0x25495]
movsx esi, byte [ecx + eax*2 + 0x25494]
mov dword [esp + 4], edx
mov ax, word [0x43fe40]
mov cl, byte [0x43fe42]
mov dx, word [0x43fe3c]
push ebx
mov bl, byte [0x43fe3a]
mov word [esp + 0x4c], ax
mov al, byte [0x43fe3e]
mov byte [esp + 0x5d], bl
mov bx, word [0x43fe34]
mov byte [esp + 0x4e], cl
mov cx, word [0x43fe30]
mov word [esp + 0x4f], dx
mov dl, byte [0x43fe32]
mov byte [esp + 0x51], al
mov ax, word [0x43fe2c]
mov word [esp + 0x5e], bx
mov bl, byte [0x43fe36]
mov word [esp + 0x52], cx
mov cl, byte [0x43fe2e]
mov byte [esp + 0x54], dl
mov dl, byte [0x43fe2a]
mov word [esp + 0x55], ax
mov byte [esp + 0x60], bl
mov bx, word [0x43fe24]
mov word [esp + 0x6a], ax
mov al, byte [0x43fe3a]
mov byte [esp + 0x57], cl
mov byte [esp + 0x6c], cl
mov cx, word [0x43fe20]
mov byte [esp + 0x5a], dl
mov word [esp + 0x61], bx
mov bl, byte [0x43fe26]
mov byte [esp + 0x6f], dl
mov dl, byte [0x43fe22]
mov byte [esp + 0x72], al
mov ax, word [0x43fe1c]
mov word [esp + 0x73], cx
mov cl, byte [0x43fe1e]
mov byte [esp + 0x63], bl
mov bx, word [0x43fe18]
mov byte [esp + 0x75], dl
mov dx, word [0x43fe14]
mov word [esp + 0x78], ax
mov al, byte [0x43fe16]
mov byte [esp + 0x7a], cl
mov cx, word [0x43fe10]
mov word [esp + 0x64], bx
mov bl, byte [0x43fe1a]
mov word [esp + 0x7b], dx
mov dl, byte [0x43fe12]
mov byte [esp + 0x7d], al
mov ax, word [0x43fe0c]
mov word [esp + 0x7e], cx
mov cl, byte [0x43fe0e]
mov byte [esp + 0x66], bl
mov bx, word [0x43fe08]
mov byte [esp + 0x80], dl
mov dx, word [0x43fe04]
mov word [esp + 0x81], ax
mov al, byte [0x43fe06]
push ebp
mov bp, word [0x43fe38]
mov byte [esp + 0x87], cl
mov cx, word [0x43fe00]
push edi
mov di, word [0x43fe28]
mov word [esp + 0x6f], bx
mov bl, byte [0x43fe0a]
mov word [esp + 0x8c], dx
mov dl, byte [0x43fe02]
mov byte [esp + 0x8e], al
mov ax, word [0x43fdfc]
mov word [esp + 0x8f], cx
mov cl, byte [0x43fdfe]
mov word [esp + 0x60], di
mov word [esp + 0x63], bp
mov byte [esp + 0x71], bl
mov word [esp + 0x75], di
mov word [esp + 0x78], bp
mov byte [esp + 0x91], dl
mov word [esp + 0x92], ax
mov dx, word [0x43fdf8]
mov al, byte [0x43fdfa]
mov byte [esp + 0x94], cl
mov cx, word [0x43fdf4]
mov word [esp + 0x95], dx
mov dl, byte [0x43fdf6]
mov byte [esp + 0x97], al
mov ax, word [0x43fdf0]
mov word [esp + 0x98], cx
mov cl, byte [0x43fdf2]
mov byte [esp + 0x9a], dl
mov dx, word [0x43fdec]
mov word [esp + 0x9b], ax
mov al, byte [0x43fdee]
mov byte [esp + 0x9d], cl
mov cx, word [0x43fde8]
mov word [esp + 0x34], dx
mov dl, byte [0x43fdea]
mov byte [esp + 0x36], al
mov ax, word [0x43fde4]
mov word [esp + 0x37], cx
mov cl, byte [0x43fde6]
mov byte [esp + 0x39], dl
mov dx, word [0x43fde0]
mov word [esp + 0x3a], ax
mov al, byte [0x43fde2]
mov byte [esp + 0x3c], cl
mov cx, word [0x43fddc]
mov word [esp + 0x3d], dx
mov dl, byte [0x43fdde]
mov byte [esp + 0x3f], al
mov ax, word [0x43fdd8]
mov word [esp + 0x40], cx
mov cl, byte [0x43fdda]
mov byte [esp + 0x42], dl
mov dx, word [0x43fdd4]
mov word [esp + 0x43], ax
mov al, byte [0x43fdd6]
mov byte [esp + 0x45], cl
mov cx, word [0x43fdd0]
mov word [esp + 0x46], dx
mov dl, byte [0x43fdd2]
mov byte [esp + 0x48], al
mov ax, word [0x43fdcc]
mov word [esp + 0x49], cx
mov cl, byte [0x43fdce]
mov byte [esp + 0x4b], dl
mov dx, word [0x43fdc8]
mov word [esp + 0x4c], ax
mov al, byte [0x43fdca]
mov byte [esp + 0x4e], cl
mov cx, word [0x43fdc4]
mov word [esp + 0x4f], dx
mov dl, byte [0x43fdc6]
mov byte [esp + 0x51], al
mov ax, word [0x43fdc0]
mov word [esp + 0x20], cx
mov cl, byte [0x43fdc2]
mov byte [esp + 0x22], dl
mov dx, word [0x43fdbc]
mov word [esp + 0x23], ax
mov al, byte [0x43fdbe]
mov byte [esp + 0x25], cl
mov cx, word [0x43fdb8]
mov word [esp + 0x26], dx
mov dl, byte [0x43fdba]
mov byte [esp + 0x28], al
mov ax, word [0x43fdb4]
mov word [esp + 0x2c], cx
mov cl, byte [0x43fdb6]
xor ebp, ebp
mov byte [esp + 0x2e], dl
mov word [esp + 0x2f], ax
mov byte [esp + 0x31], cl
mov dword [esp + 0x18], ebp
call fcn.00436ff1
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0xb4]
cmp dword [edi*4 + 0x43fc00], ebp
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xa8], ebp
jne 0x406f56
lea eax, [ebx - 1]
test eax, eax
jle 0x406e08
mov ebx, dword [esp + 0x1c]
mov edx, dword [edi*4 + 0x43fb78]
lea ecx, [esi + esi*2]
lea ecx, [eax + ecx*4]
lea ecx, [ebx + ecx*4 + 0x254d8]
mov ebx, dword [ecx]
cmp edx, dword [ebx*4 + 0x43fb78]
jne 0x406dfe
inc ebp
sub ecx, 4
dec eax
jne 0x406df2
mov ebx, dword [esp + 0x10]
lea ecx, [ebx + 1]
cmp ecx, 0xb
jge 0x406e45
mov edi, dword [edi*4 + 0x43fb78]
lea edx, [esi + esi*2]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x1c]
lea edx, [edx + eax*4 + 0x254d8]
mov eax, 0xb
sub eax, ecx
nop
mov ecx, dword [edx]
cmp edi, dword [ecx*4 + 0x43fb78]
jne 0x406e3f
inc dword [esp + 0x18]
add edx, 4
dec eax
jne 0x406e30
mov edx, dword [esp + 0x18]
lea eax, [edx + ebp]
cmp eax, 1
jle 0x406e5b
mov edi, 2
lea ecx, [ebp + 1]
jmp 0x406e74
jne 0x406e6b
xor ecx, ecx
test ebp, ebp
mov edi, 1
setne cl
jmp 0x406e74
mov ecx, 0xa
xor edi, edi
sub ecx, esi
mov eax, dword [esp + 0xbc]
cmp eax, ebx
jle 0x406e86
mov esi, 1
jmp 0x406e93
xor edx, edx
cmp eax, ebx
setne dl
dec edx
and edx, 2
mov esi, edx
mov edx, dword [esp + 0xb4]
mov edx, dword [edx*4 + 0x43fb78]
cmp edx, 3
je 0x406ebd
cmp edx, 1
je 0x406ebd
cmp edx, 2
je 0x406ebd
mov ebp, esi
sub ebp, 0
je 0x406ecd
dec ebp
je 0x406ec9
dec ebp
jne 0x406ed3
mov ebx, dword [esp + 0xb8]
mov eax, 0xa
sub eax, ebx
jmp 0x406ed7
sub ebx, eax
mov eax, ebx
jmp 0x406ed7
mov eax, dword [esp + 0x10]
sub edi, 0
je 0x406f34
dec edi
je 0x406f0d
dec edi
jne 0x4070f6
lea edi, [esp + eax + 0x80]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + esi + 0x24]
lea eax, [eax + esi*2]
push eax
lea eax, [esp + edx + 0x5c]
lea edx, [eax + edx*2]
lea eax, [esp + ecx + 0x3c]
push edx
lea ecx, [eax + ecx*2]
jmp 0x4070e3
lea edi, [esp + eax + 0x80]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + esi + 0x24]
lea eax, [eax + esi*2]
push eax
lea eax, [esp + edx + 0x5c]
lea edx, [eax + edx*2]
lea eax, [esp + ecx + 0x34]
push edx
lea ecx, [eax + ecx*2]
jmp 0x4070e3
lea edi, [esp + eax + 0x80]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + esi + 0x24]
lea eax, [eax + esi*2]
push eax
lea eax, [esp + ecx + 0x88]
lea ecx, [eax + ecx*2]
jmp 0x4070db
lea ecx, [ebx + 1]
cmp ecx, 0xb
jge 0x406f99
mov edi, dword [edi*4 + 0x43fb78]
lea eax, [esi + esi*2]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
lea edx, [eax + edx*4 + 0x254d8]
mov eax, 0xb
sub eax, ecx
lea ecx, [ecx]
mov ecx, dword [edx]
cmp edi, dword [ecx*4 + 0x43fb78]
jne 0x406f8c
inc ebp
add edx, 4
dec eax
jne 0x406f80
mov edi, dword [esp + 0xb4]
lea eax, [ebx - 1]
test eax, eax
jle 0x406fd5
mov edx, dword [edi*4 + 0x43fb78]
mov edi, dword [esp + 0x1c]
lea ecx, [esi + esi*2]
lea ecx, [eax + ecx*4]
lea ecx, [edi + ecx*4 + 0x254d8]
jmp 0x406fc0
mov edi, dword [ecx]
cmp edx, dword [edi*4 + 0x43fb78]
jne 0x406fcf
inc dword [esp + 0x18]
sub ecx, 4
dec eax
jne 0x406fc0
mov edx, dword [esp + 0x18]
lea eax, [edx + ebp]
cmp eax, 1
jle 0x406feb
mov edi, 2
lea esi, [ebp + 1]
jmp 0x406fff
jne 0x406ffd
xor eax, eax
test ebp, ebp
setne al
mov edi, 1
mov esi, eax
jmp 0x406fff
xor edi, edi
mov eax, dword [esp + 0xbc]
cmp eax, ebx
jge 0x407011
mov ecx, 1
jmp 0x40701c
xor ecx, ecx
cmp eax, ebx
setne cl
dec ecx
and ecx, 2
mov edx, dword [esp + 0xb4]
mov edx, dword [edx*4 + 0x43fb78]
cmp edx, 0xa
je 0x407046
cmp edx, 8
je 0x407046
cmp edx, 9
je 0x407046
mov ebp, ecx
sub ebp, 0
je 0x407055
dec ebp
je 0x40704f
dec ebp
jne 0x407059
mov eax, dword [esp + 0xb8]
jmp 0x40705d
sub ebx, eax
mov eax, ebx
jmp 0x40705d
sub eax, ebx
jmp 0x40705d
mov eax, dword [esp + 0x10]
sub edi, 0
je 0x4070c4
dec edi
je 0x407098
dec edi
jne 0x4070f6
lea edi, [esp + eax + 0x34]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + ecx + 0x24]
lea ecx, [eax + ecx*2]
push ecx
lea eax, [esp + edx + 0x5c]
lea ecx, [eax + edx*2]
push ecx
lea edx, [esp + esi + 0x40]
lea eax, [edx + esi*2]
push eax
push str._s_s_s_s
lea ecx, [esp + 0x28]
push ecx
jmp 0x4070ee
lea edi, [esp + eax + 0x34]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + ecx + 0x24]
lea ecx, [eax + ecx*2]
push ecx
lea eax, [esp + edx + 0x5c]
lea ecx, [eax + edx*2]
push ecx
lea edx, [esp + esi + 0x38]
lea eax, [edx + esi*2]
push eax
push str._s_s_s_s
lea ecx, [esp + 0x28]
push ecx
jmp 0x4070ee
lea edi, [esp + eax + 0x34]
lea eax, [edi + eax*2]
push eax
lea eax, [esp + ecx + 0x24]
lea ecx, [eax + ecx*2]
lea eax, [esp + esi + 0x38]
push ecx
lea ecx, [eax + esi*2]
lea eax, [esp + edx + 0x5c]
push ecx
lea ecx, [eax + edx*2]
push ecx
lea edx, [esp + 0x24]
push str._s_s_s_s
push edx
call fcn.00406390
add esp, 0x18
call fcn.00436ff1
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x25414]
push ecx
lea edx, [esp + 0x14]
push str._2d
push edx
mov byte [esp + 0xb4], 1
call fcn.00406390
mov esi, dword [esp + 0xbc]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push esi
call fcn.004063b0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x18
mov byte [esp + 0xa8], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
pop edi
pop ebp
pop ebx
jg 0x40716e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 8]
add eax, 0xfffffff0
mov dword [esp + 0x9c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407197
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x94]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x9c
ret 0x10