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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
xor edx, edx
push 0x4a
pop ecx
xor esi, esi
movzx eax, word [edi + 4]
mov ebx, esi
div ecx
mov dword [esp + 0x28], esi
mov ebp, esi
mov dword [esp + 0x30], ebx
mov word [edi + 0x20], ax
test ax, ax
je 0x422fa6
mov ecx, 0xfe
cmp ax, cx
ja 0x422fa6
push 0x24
call fcn.00441c9f
pop ecx
test eax, eax
je 0x422ab6
mov ecx, eax
call fcn.00425f52
jmp 0x422ab8
mov eax, esi
mov dword [edi + 0x2db], eax
mov eax, 0xffef
and word [edi + 6], ax
cmp dword [edi + 0xa], esi
jne 0x422ad3
mov dword [edi + 0xa], str.Invalid_entry_
cmp dword [edi + 0xe], esi
jne 0x422adf
mov dword [edi + 0xe], str.Valid_response_required_here_
cmp dword [edi + 0x12], esi
jne 0x422aeb
mov dword [edi + 0x12], str.Too_many_decimal_places_
cmp dword [edi + 0x16], esi
jne 0x422af7
mov dword [edi + 0x16], str.Insufficient_decimal_places_
mov eax, 0xffff
mov dword [edi + 0x2a9], esi
mov word [edi + 0x2b5], ax
xor edx, edx
mov eax, dword [esp + 0x6c]
mov dword [edi + 0x2b1], eax
mov ax, word [edi + 0x2bd]
push 0x4a
mov word [edi + 0x2a7], ax
movzx eax, word [edi + 4]
pop ecx
div ecx
xor ecx, ecx
push 0x4a
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00441cd2
movzx ecx, word [edi + 4]
push ecx
push esi
push eax
mov dword [edi + 0x2a3], eax
call fcn.00443240
movzx eax, word [edi + 4]
push eax
push dword [edi]
push dword [edi + 0x2a3]
call fcn.00442cc0
mov edx, dword [esp + 0x78]
mov ecx, esi
movzx eax, dx
add esp, 0x1c
mov dword [esp + 0x24], eax
xor edx, edx
movzx eax, word [esp + 0x60]
inc edx
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov esi, 0x200
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], 4
cmp ax, word [edi + 0x20]
jae 0x422dfd
jmp 0x422bae
xor edx, edx
inc edx
movzx eax, cx
imul esi, eax, 0x4a
add esi, dword [edi + 0x2a3]
mov dword [esp + 0x3c], esi
cmp dword [esi + 0x2a], 0x431a31
jne 0x422c05
cmp dword [esi + 0x26], 0
je 0x422c05
xor eax, eax
mov dword [esp + 0x48], esi
mov word [esp + 0x4c], ax
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x54], edi
call dword [esi + 0x26]
cmp word [esp + 0x50], 0
pop ecx
je 0x422bfe
cmp word [0x50feac], 0
je 0x422bfe
or dword [esi + 0x22], 0x2000000
mov ecx, dword [esp + 0x18]
xor edx, edx
inc edx
and dword [esp + 0x2c], 0
cmp dword [esi + 0x2a], 0x431a31
jne 0x422c2f
mov eax, dword [esi + 0x22]
and eax, 0x22000000
cmp eax, 0x20000000
jne 0x422c2f
movzx eax, word [esp + 0x24]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], edx
cmp dword [esi + 4], 0xffffffff
jne 0x422c3a
cmp dword [esi], 0xffffffff
jne 0x422c4a
cmp dword [esi + 4], 0xfffffffe
je 0x422c4a
cmp dword [esi + 4], 0xfffffffd
jne 0x422db4
test dword [esi + 0x22], 0x2000000
jne 0x422db0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
push dword [esp + 0x24]
push ecx
push dword [esp + 0x38]
push edi
call fcn.00422915
movzx eax, word [esp + 0x30]
mov ecx, 0x200
mov dword [esp + 0x40], eax
add esp, 0x18
mov eax, dword [0x510504]
mov eax, dword [eax]
test word [eax + 0x10], cx
jne 0x422ca9
mov ecx, dword [esp + 0x14]
xor eax, eax
inc eax
cmp cx, ax
mov eax, dword [esp + 0x10]
jbe 0x422ca4
add eax, 4
add eax, ecx
jmp 0x422cb4
add eax, 2
jmp 0x422cb4
mov eax, dword [esp + 0x10]
add eax, 0xc
add eax, dword [esp + 0x14]
movzx eax, ax
cmp ax, bp
jbe 0x422cbf
movzx ebp, ax
cmp bp, bx
jbe 0x422ccb
movzx ebx, bp
mov dword [esp + 0x30], ebx
xor eax, eax
cmp word [esp + 0x2c], ax
cmovne ebp, eax
cmp dword [esi + 4], 0xfffffffd
mov dword [esp + 0x40], ebp
jne 0x422d8c
mov eax, dword [esp + 0x34]
xor ebp, ebp
or dword [esi + 0x46], eax
movzx edx, word [esp + 0x18]
and dword [esp + 0x38], 0
sub edx, 1
js 0x422d6b
mov esi, dword [esp + 0x38]
imul eax, edx, 0x4a
push 0x4a
pop ebx
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 0x2a3]
add ecx, eax
cmp dword [ecx + 0x2a], 0x431a31
jne 0x422d58
test dword [ecx + 0x22], 0x2000000
jne 0x422d58
cmp dword [ecx], esi
jl 0x422d63
test ebp, ebp
je 0x422d3a
mov eax, dword [ecx + 4]
cmp eax, dword [ebp + 4]
je 0x422d4c
test esi, esi
jne 0x422d3a
mov esi, dword [ebp]
mov ax, word [esp + 0x20]
sub ax, word [ecx]
push 3
pop ebp
sub ax, bp
mov word [ecx + 0x1a], ax
test byte [ecx + 0x46], 4
mov ebp, ecx
jne 0x422d63
mov eax, dword [esp + 0x2c]
sub eax, ebx
sub edx, 1
mov dword [esp + 0x2c], eax
jns 0x422d09
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
movzx eax, word [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
movzx eax, cx
mov dword [esp + 0x24], eax
movzx eax, cx
mov dword [esp + 0x5c], eax
jmp 0x422da6
cmp dword [esi + 4], 0xfffffffe
je 0x422da6
movzx eax, bp
xor ebp, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
movzx eax, ax
mov dword [esp + 0x24], eax
and dword [esp + 0x10], 0
and dword [esp + 0x14], 0
and dword [esi + 4], 0
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x34]
push eax
push edi
call fcn.00429f17
mov ecx, dword [esp + 0x3c]
add esp, 0x24
inc ecx
mov dword [esp + 0x18], ecx
cmp cx, word [edi + 0x20]
jb 0x422bab
mov esi, 0x200
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
movzx eax, word [edi + 0x20]
push dword [esp + 0x24]
push eax
push dword [esp + 0x38]
push edi
call fcn.00422915
mov eax, dword [0x510504]
add esp, 0x18
mov eax, dword [eax]
test word [eax + 0x10], si
mov eax, dword [esp + 0x10]
jne 0x422e32
add eax, 3
jmp 0x422e35
add eax, 0xb
add eax, dword [esp + 0x14]
movzx eax, ax
cmp ax, bx
jbe 0x422e44
movzx ebx, ax
call fcn.00412d86
test ax, ax
jne 0x422f56
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xb
call esi
mov ecx, dword [0x50d264]
movzx eax, ax
shl eax, 2
cdq
movzx ecx, word [ecx]
idiv ecx
push dword [esp + 0x70]
xor ecx, ecx
test edx, edx
setne cl
add cx, ax
movzx eax, cx
mov dword [esp + 0x2c], eax
call fcn.0042282f
mov bp, word [esp + 0x2c]
pop ecx
push 0x1e
add bp, ax
call esi
mov ecx, dword [0x50d264]
imul eax, eax, 3
movzx ecx, word [ecx]
movzx eax, ax
shl eax, 2
cdq
idiv ecx
xor ecx, ecx
test edx, edx
setne cl
add cx, ax
add bp, cx
cmp bp, bx
jbe 0x422ebf
movzx ebx, bp
call fcn.00465e13
test ax, ax
je 0x422f56
mov eax, dword [0x510504]
cmp dword [eax], 0x533d68
jne 0x422f56
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x406
push dword [0x52d7a8]
call ebp
mov esi, eax
cmp esi, 2
jb 0x422f56
xor ecx, ecx
mul dword [esp + 0x34]
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00441cd2
pop ecx
push eax
push esi
push 0x406
push dword [0x52d7a8]
mov dword [esp + 0x50], eax
call ebp
mov ebp, dword [esp + 0x40]
mov ecx, dword [0x50d264]
mov eax, dword [ebp + esi*4 - 8]
movzx ecx, word [ecx]
shl eax, 2
cdq
idiv ecx
xor ecx, ecx
test edx, edx
setne cl
add cx, ax
movzx eax, cx
mov dword [esp + 0x28], eax
cmp ax, bx
jbe 0x422f4f
movzx ebx, ax
push ebp
call fcn.00441cdb
pop ecx
push 0
push ebx
push edi
call fcn.00431df7
mov eax, dword [esp + 0x70]
add esp, 0xc
test eax, eax
je 0x422f6d
mov word [eax], bx
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x422f7d
mov ax, word [esp + 0x20]
mov word [ecx], ax
mov eax, 0x80
or word [edi + 6], ax
movzx eax, word [edi + 6]
test eax, 0x2000
je 0x422fa1
push edi
call fcn.004246c2
pop ecx
mov ecx, 0xdfff
and word [edi + 6], cx
xor eax, eax
inc eax
jmp 0x422fb3
push str.Invalid_Number_of_ICBs
call fcn.00413845
pop ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret